我有一个xyz坐标列表,格式如下:
mycrds = [[0.0, 0.5, 0.1],
[0.4, 0.6, 0.8],
[0.2, 0.3, 0.9], ...]
我知道如果我想得到排序列表,首先按z排序,其次按y排序,最后按x排序,我需要做:
sorted(mycrds, key=lambda x: [x[2], x[1], x[0]])
但是如何获得排序列表中每个坐标的原始索引列表呢?到目前为止,我已经尝试了how to return index of a sorted list?中描述的所有方法,但是除了O(N^2)方法之外,没有一种方法工作得很好。我想知道有没有什么有效的方法?你知道吗
给出:
如果这为您提供了所需的排序顺序:
然后您可以得到每个列表项的原始索引,如下所示:
因此,您所做的就是对
0..len(your_list)
中的一个范围进行排序,并使用该索引i
引用列表中的元素并以相同的方式形成排序元组。这与对基础列表进行排序的复杂性相同。你知道吗枚举将保留数组的原始坐标。你知道吗
相关问题 更多 >
编程相关推荐