如何根据元组列表中的值对元组进行排序

时间:2018-01-11 10:57:59

标签: python sorting tuples

在python中,我希望根据最后一个元素的值对元组进行排序。例如,我有一个像下面那样的元组。

tuples = [(2,3),(5,7),(4,3,1),(6,3,5),(6,2),(8,9)]

在排序后我希望采用这种格式。

tuples = [(4,3,1),(6,2),(2,3),(6,3,5),(5,7),(8,9)]

我如何做到这一点?

2 个答案:

答案 0 :(得分:3)

使用适当的键函数Povide list.sort,该函数返回元组的最后一个元素:

tuples.sort(key=lambda x: x[-1])

答案 1 :(得分:2)

您可以使用:

from operator import itemgetter

tuples = sorted(tuples, key=itemgetter(-1))

关键是我们使用key作为函数来映射我们希望排序的可订购值的元素。使用itemgetter(-1)我们构建一个函数,对于值x,它将返回x[-1],因此最后一个元素。

这会产生:

>>> sorted(tuples, key=itemgetter(-1))
[(4, 3, 1), (6, 2), (2, 3), (6, 3, 5), (5, 7), (8, 9)]