【发布时间】:2019-09-24 18:24:21
【问题描述】:
我有一个有趣的问题,但我还没有找到任何解决方案。 有两个具有相同值但顺序不同的列表。我重新排序一个列表,以便列表变得相同。没关系,但我还需要用相同的键重新排序第三个列表。
我无法在我的代码中使用 zip 或枚举来检索第二个列表的新索引。
first=[(1,1,1),(2,2,2),(3,3,3)]
second=[(2,2,2),(3,3,3),(1,1,1)]
third=[2,3,1]
second=sorted(second,key=first.index)
print(second)
[(1,1,1),(2,2,2),(3,3,3)]
d = [i[0] for i in sorted(enumerate(second), key=lambda x:first.index)]
d 应该是 (2,0,1) 但它不起作用
第三个列表的目标是:[1,2,3]
【问题讨论】:
-
我理解到最后一句话。为什么第三个应该是 [1, 2, 3]?
-
third是否总是类似于second,即 2.. 3... 1..? -
不,我明白了......我的例子非常简单......这些列表的值可以是任何浮点数,没有特定的顺序,除了第一个和第二个中的值是相同的,但是以不同的顺序。第三个可以看作是属于原始第二个列表中的项目的对象。
-
是的,第三个总是与第二个相似,但具有完全不同的值。我的目标是像第二名一样获得第三名。