首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python如何对元组列表进行排序?

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

Stack Overflow用户
提问于 2009-03-13 19:09:17
回答 5查看 70.3K关注 0票数 62

从经验上看,当传递一个元组列表时,Python的默认列表排序器将按每个元组中的第一个元素排序。对吗?如果不是,那么按照元组列表的第一个元素排序的正确方法是什么?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-03-13 19:13:50

它自动按照元组中的第一个元素对元组列表进行排序,然后按第二个元素排序,依此类推,tuple(1,2,3)将排在tuple(1,2,4)之前。如果您想覆盖此行为,请将一个callable作为第二个参数传递给排序方法。此可调用函数应返回1,-1,0。

票数 79
EN

Stack Overflow用户

发布于 2009-03-13 19:12:54

是的,这是默认设置。事实上,这是Python中经典的"DSU“(装饰-排序-取消装饰)习惯用法的基础。参见Code Like a Pythonista

票数 8
EN

Stack Overflow用户

发布于 2009-03-13 19:13:52

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

代码语言:javascript
复制
>>> 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)]

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

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/644170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档