假设我有一个清单
lst1 = [[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2)]]
还有另一个清单
lst2 = [['a', (1, 1)], ['a', (1, 2)], ['a', (1, 3)], ['b', (2, 1)], ['b', (2, 2)]]
现在,如何确定lst1中的每个序列都应保持原样,这意味着在(1,1)之前没有(1,2),在(2,2)之前没有(2,3)
以及如何确保此顺序保留在lst2中,这意味着['a',(1,2)]不应出现在['a',(1,1)]或['b',(2,2)之前)]不应位于['b',(2,1)]之前
最佳答案
lst1[0].sort(key=lambda tpl: tpl[0]*10 + tpl[1])
应该可以解决问题。
您也可以将其用于lst2
:lst2.sort(key=lambda lst: lst[1][0]*10 + lst[1][1])
编辑:
您想要实现的顺序显然是自然顺序。因此,lst1[0].sort()
和lst2.sort()
将按照您的问题中的说明对列表进行排序。
关于python - 如何在列表列表中保留元素的顺序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11750106/