首页 > 解决方案 > 如何在python中按顺序对列表进行排序?

问题描述

如何按顺序对列表进行排序?我有一个列表中的元组列表,我需要按我想要的顺序对它们进行排序。

list1 = [(2,3,4),(3,4,5),(5,3,2)]

我需要首先按元组的第二个元素对它们进行排序,其次(如果前一个元素相等)按第三个元素排序,第三个按第一个元素排序。是否有任何内置功能可以做到这一点?

标签: pythonpython-3.xlistsorting

解决方案


您可以使用sorted(iterable,key).

>>>sorted(list1,key=lambda x: (x[1],x[2],x[0])
#[(5, 3, 2), (2, 3, 4), (3, 4, 5)]

如果您不想使用lambda,可以使用itemgetter.

from operator import itemgetter
sorted(list1,key=itemgetter(1,2,0))
#[(5, 3, 2), (2, 3, 4), (3, 4, 5)]

推荐阅读