繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM