2016-02-25 55 views
2

我有一個關於元組列表的問題。Python在列表維護順序中插入項目

test = [('a', 1, 40), ('a', 2, 5), ('b', 2, 6), ('b', 3, 1)] 

我基本上要添加('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)] 

有沒有人有一個很好的和有效的想法如何做到這一點?我現在正在使用python 3.5。請注意,實際問題比較困難,所以手動添加點不是一個聰明的想法,因爲它可能會有很大差異。

+0

你的意思是_right order_? – Arman

+2

@ Tunder250你沒有嵌套列表,你有一個元組列表。 –

回答

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)] 
相關問題