首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按第三个元素排序Python列表,然后按第一个元素排序,等等?

问按第三个元素排序Python列表,然后按第一个元素排序,等等?
EN

Stack Overflow用户
提问于 2011-12-15 23:51:19
回答 4查看 3.5K关注 0票数 3

假设我有一个形式为[x,y,z,x,y,z等]的列表等等,其中每个分组代表一个随机点。

我想要按z坐标对点进行排序,然后在每组z中,按x坐标对它们进行排序。这个是可能的吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-12-15 23:55:33

当然,可以在名为"Operator Module Functions“的部分中查看this page。基本上你只需要使用sort的key特性和itemgetter运算符...

代码语言:javascript
复制
from operator import itemgetter
sorted(tuples, key=itemgetter(2,0))
票数 12
EN

Stack Overflow用户

发布于 2011-12-16 00:21:17

对于简单的查找,请按照Andrew White的建议使用itemgetter。但是对于更复杂的查找,您可能需要使用def或lambda创建一个函数。例如:

代码语言:javascript
复制
>>> sorted(l, key=lambda x: (x[0][2], x[0][0]))
[[[10, 2, 3], [4, 5, 6]], [[8, 13, 9], [15, 16, 17]], [[9, 3, 9], [9, 10, 11]]]
票数 2
EN

Stack Overflow用户

发布于 2012-05-11 15:54:06

如果您的列表的格式为

代码语言:javascript
复制
[ [[x,y,z],[x1,y1,z1]] , [[x,y,z],[x1,y1,z1]] ... ]

然后使用以下命令:

代码语言:javascript
复制
sorted(tuples, key=lambda x: (x[0][2], x[0][0]))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8522800

复制
相关文章

相似问题

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