Python如何对元组列表进行排序?

2024-04-24 04:24:58 发布

您现在位置:Python中文网/ 问答频道 /正文


Tags: python
3条回答

它根据元组中的第一个元素自动对元组列表进行排序,然后根据第二个元素进行排序,依此类推,元组([1,2,3])将位于元组([1,2,4])之前。如果要重写此行为,请将callable作为第二个参数传递给sort方法。这个可调用的应该返回1,-1,0。

是的,这是默认值。实际上,这是Python中经典的“DSU”(Decorate Sort Undecorate)习惯用法的基础。见Code Like a Pythonista

不,元组就像字符串一样sequence types。通过依次比较每个元素,可以对它们进行相同的排序:

>>> import random
>>> sorted([(0,0,0,int(random.getrandbits(4))) for x in xrange(10)])
[(0, 0, 0, 0), (0, 0, 0, 4), (0, 0, 0, 5), (0, 0, 0, 7), (0, 0, 0, 8),
(0, 0, 0, 9), (0, 0, 0, 12), (0, 0, 0, 12), (0, 0, 0, 12), (0, 0, 0, 14)]

三个零的出现只是为了表明必须检查第一个元素以外的其他元素。

相关问题 更多 >