nar*_*nan 16 python python-3.x
例如我有一个列表A:
A = [100, 200, 300, 200, 400, 500, 600, 400, 700, 200, 500, 800]
Run Code Online (Sandbox Code Playgroud)
我有清单B:
B = [100, 200, 200, 500, 600, 200, 500]
Run Code Online (Sandbox Code Playgroud)
我需要确定元素的索引B与A
我试过了:
list_index = [A.index(i) for i in B]
Run Code Online (Sandbox Code Playgroud)
它返回:
[0, 1, 1, 5, 6, 1, 5]
Run Code Online (Sandbox Code Playgroud)
但我需要的是:
[0, 1, 3, 5, 6, 9, 10]
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
Mar*_*yer 15
您可以遍历 的枚举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]
Run Code Online (Sandbox Code Playgroud)
这避免了index()多次使用。
| 归档时间: |
|
| 查看次数: |
691 次 |
| 最近记录: |