假设我有一个清单

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])应该可以解决问题。

您也可以将其用于lst2lst2.sort(key=lambda lst: lst[1][0]*10 + lst[1][1])

编辑:

您想要实现的顺序显然是自然顺序。因此,lst1[0].sort()lst2.sort()将按照您的问题中的说明对列表进行排序。

关于python - 如何在列表列表中保留元素的顺序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11750106/

10-12 23:07