0

对于一个类项目,我需要使用python 2.1,而且我可能不得不使用我不熟悉的DSU进行排序。所以如果可能的话,我想要一些帮助。

我有一个用于存储顶点及其坐标的列表。例如

vertex = [(2, 2), (3, 3), (1, 1)]

等等。

我还有另一个列表,它将存储顶点的索引位置,根据它们的第一个坐标排序。所以它会像这样开始

order = [0, 1, 2]

考虑到这个例子,我的目标是让它像这样

order = [2, 0, 1]

不改变列表“顶点”中的顺序。

有任何想法吗?提前致谢

4

1 回答 1

0

我不知道它是否适用于 Python2.1,但以下任何一项都可以满足您在 Python2.7 中的要求:

order = [i for i,_ in sorted(enumerate(vertex), key = lambda x: x[1])]

或者

order = [0,1 ,2]
order.sort(key=lambda x: vertex[x])

这可能适用于 Python2.1(我没有安装 Python 2.1 来测试它)。

order.sort(lambda x,y:cmp(vertex[x],vertex[y]))
于 2014-11-17T22:31:57.547 回答