Python在列表维护顺序中插入项目

Tun*_*250 2 python

我有一个关于元组列表的问题.

test = [('a', 1, 40), ('a', 2, 5), ('b', 2, 6), ('b', 3, 1)]
Run Code Online (Sandbox Code Playgroud)

基本上,我想添加('a', 3, 0)('b', 2, 0)到列表中.最好是按照正确的顺序:

test = [('a', 1, 40), ('a', 2, 5), ('a',3 , 0), ('b' ,1 , 0) ('b', 2, 6), ('b', 3, 1)]
Run Code Online (Sandbox Code Playgroud)

有没有人有一个很好的和有效的想法如何做到这一点?我现在正在使用python 3.5.请注意,实际问题有点困难,因此手动添加点并不是一个明智的想法,因为它可能会有很大不同.

Abh*_*jit 5

您始终可以使用bisect.insort将任何可比较的元素插入到排序列表中.

>>> import bisect
>>> bisect.insort(test, ('a', 3, 0))
>>> bisect.insort(test, ('b', 2, 0))
>>> test
[('a', 1, 40), ('a', 2, 5), ('a', 3, 0), ('b', 2, 0), ('b', 2, 6), ('b', 3, 1)]
Run Code Online (Sandbox Code Playgroud)