在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值。
非常感谢任何帮助!
答案 0 :(得分:2)
尝试使用
sorted(a, key=lambda tup: (-tup[1],tup[0],tup[2]))