在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)]
我如何做到这一点?
答案 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)]