对于一个类项目,我需要使用python 2.1,我可能不得不使用DSU进行排序,这是我不熟悉的。如果可能的话,我想要一些帮助。
我有一个存储顶点及其坐标的列表。例如
vertex = [(2, 2), (3, 3), (1, 1)]
等等。
我还有另一个列表,它将存储顶点的索引位置,并根据它们的第一个坐标进行排序。 所以它会像这样开始
order = [0, 1, 2]
考虑到示例
,我的目标就是这样order = [2, 0, 1]
不改变列表“vertex”中的顺序。
有什么想法吗? 提前致谢
答案 0 :(得分: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]))