[英]How to sort a tuple based on a value within the list of 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)]
我该怎么做?
Povide list.sort
具有适当的键函数,该函数返回元组的最后一个元素:
tuples.sort(key=lambda x: x[-1])
您可以使用:
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)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.