例如我有一个列表A
:
A = [100, 200, 300, 200, 400, 500, 600, 400, 700, 200, 500, 800]
我有清单B
:
B = [100, 200, 200, 500, 600, 200, 500]
我需要确定元素的索引B
与A
我试过了:
list_index = [A.index(i) for i in B]
它返回:
[0, 1, 1, 5, 6, 1, 5]
但我需要的是:
[0, 1, 3, 5, 6, 9, 10]
我该如何解决?
您可以遍历 的枚举A
以跟踪索引并生成它们匹配的值:
A = [100,200,300,200,400,500,600,400,700,200,500,800]
B = [100,200,200,500,600,200,500]
def get_indices(A, B):
a_it = enumerate(A)
for n in B:
for i, an in a_it:
if n == an:
yield(i)
break
list(get_indices(A, B))
# [0, 1, 3, 5, 6, 9, 10]
这避免了index()
多次使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句