根据元素索引对python中的元组列表进行排序

时间:2014-02-18 16:10:21

标签: python list sorting

如何根据某个位置的int对元组列表进行排序? (没有for循环)

例如。根据每个元组中的第三个元素对l = [(1,5,2),(7,1,4),(1,6,3)]进行排序?

2 个答案:

答案 0 :(得分:2)

您可以使用list.sort,其关键功能和operator.itemgetter

>>> from operator import itemgetter
>>> l = [(1,5,2),(7,1,4),(1,6,3)]
>>> l.sort(key=itemgetter(2))
>>> l
[(1, 5, 2), (1, 6, 3), (7, 1, 4)]
>>>

您还可以使用lambda function代替operator.itemgetter

>>> l = [(1,5,2),(7,1,4),(1,6,3)]
>>> l.sort(key=lambda x: x[2])
>>> l
[(1, 5, 2), (1, 6, 3), (7, 1, 4)]
>>>

然而,后者是generally faster

答案 1 :(得分:2)

您可以使用内置的sorted内容指定用于对列表进行排序的键:

>>> mylist = sorted([(1,5,2),(7,1,4),(1,6,3)], key = lambda t: t[2])
>>> mylist
[(1, 5, 2), (1, 6, 3), (7, 1, 4)]
>>>