在python中对向量列表进行排序和排序

时间:2015-08-04 19:36:04

标签: python list sorting vector

在Python中对X,Y,Z值的矢量列表进行排序

您好,有人可以指点我对稍微复杂的排序python列表的方向 - (目前列表不是元组)

我有一个矢量列表,我希望在3D空间中进行绘制,所需的输出是它们像书本一样索引,从左上角到右下角,从前页到后页。< / p>

为简单起见,我使用了5的X,Y,Z值作为例子...

# X,Y,Z vector list

vector_list = [(5,5,5), (15,5,5),(20,5,5),(25,5,5), (5,10,5),(5,15,5)
(5,20,5), (5,25,5), (25,25,5), (15,25,5),(15, 5, 5), (10,5, 5), (20,20,5)]


# (Plots/reads like a book, from the top line (Y) - across left to right (X), - then in depth (Z).

# Sort order: 

# First via Highest Y values, vector_list[1]
# Second via Lowest X values, vector_list[0]
# Third via Lowest Z values, vector)list[2]

# Desired ouput (5, 25, 5), (15, 25, 5), (25, 25, 5),(5, 20, 5), (20, 20, 5)
# (5, 15, 5), (5, 10, 5) etc...

我可以通过Y值或通过总值使用

进行排序
sorted(a, key=lambda tup: tup[1])

但是不能跟进排序X或Z而不会丢失我的排序Y值。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

尝试使用

sorted(a, key=lambda tup: (-tup[1],tup[0],tup[2]))