python - 如何首先根据元组的第二个元素对元组列表进行排序,然后再根据元组的第三个元素排序?

时间:2021-05-06 08:16:39

标签: python list sorting

大家好,我有一个像这样的元组列表:

L = [(el,3,1),(el2,2,3),(el3,3,2),(el4,2,4),(el5,1,3)]

我想这样订购:

L_ordered = [(el5,1,3),(el2,2,3),(el4,2,4),(el,3,1),(el3,3,2)]

我首先根据第二个数字进行排序,然后根据第三个数字进行排序,但保持相对于第二个数字的顺序。 有人知道如何在 python 中做到这一点吗?

1 个答案:

答案 0 :(得分:0)

使用keysort()函数的sorted()参数;让它返回一个应该被考虑的字段的元组,按照它们应该被考虑的顺序:

L = [(el,3,1), (el2,2,3), (el3,3,2), (el4,2,4), (el5,1,3)]

L_ordered = sorted(L, key=lambda item: (item[1], item[2]))