【发布时间】:2019-09-25 00:06:23
【问题描述】:
试图检索排序列表“秒”的索引。 "second" 包含与 "first" 相同的值,并将被重新排序以成为与 "first" 相同的顺序。我正在寻找一个索引列表“d”,其中包含旧“第二个”的重新排序索引。
尝试使用 zip 或枚举检索“d”,但失败了。
first= [(11.373,0.354,6.154),(22.354,0.656,0.664),(33.654,33.546,31.131)]
second=[(22.354,0.656,0.664),(33.654,33.546,31.131),(11.373,0.354,6.154)]
second=sorted(second,key=first.index)
print(first)
print(second)
[(11.373, 0.354, 6.154), (22.354, 0.656, 0.664), (33.654, 33.546, 31.131)]
[(11.373, 0.354, 6.154), (22.354, 0.656, 0.664), (33.654, 33.546, 31.131)]
这里的“第二”与“第一”的顺序相同。凉爽的。 但是如何从“second”检索重新排序的索引列表“d”?
我试过这样: d = [i[0] for i in sorted(enumerate(second), key=first.index)]
在本例中,“d”应变为 [2,0,1]
这种类型的键以某种方式阻止了检索旧索引的可能性。有什么推荐吗?
【问题讨论】:
标签: python list sorting indexing