假设我有一个形式为[x,y,z,x,y,z等]的列表等等,其中每个分组代表一个随机点。
我想要按z坐标对点进行排序,然后在每组z中,按x坐标对它们进行排序。这个是可能的吗?
发布于 2011-12-15 23:55:33
当然,可以在名为"Operator Module Functions“的部分中查看this page。基本上你只需要使用sort的key特性和itemgetter运算符...
from operator import itemgetter
sorted(tuples, key=itemgetter(2,0))发布于 2011-12-16 00:21:17
对于简单的查找,请按照Andrew White的建议使用itemgetter。但是对于更复杂的查找,您可能需要使用def或lambda创建一个函数。例如:
>>> 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]]]发布于 2012-05-11 15:54:06
如果您的列表的格式为
[ [[x,y,z],[x1,y1,z1]] , [[x,y,z],[x1,y1,z1]] ... ]然后使用以下命令:
sorted(tuples, key=lambda x: (x[0][2], x[0][0]))https://stackoverflow.com/questions/8522800
复制相似问题