python - 与另一个列表进行比较,确定列表中所有元素的索引

标签 python python-3.x

例如我有一个列表 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()多次。

关于python - 与另一个列表进行比较,确定列表中所有元素的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68520738/

相关文章:

python - 将 UTF-8 字符串转换为 Python 中的字符串

javascript - Python 替代 Javascript function.bind()?

python - Django2.1.7 ImportError : cannot import name 'util' from 'django.forms' (/Users/lib/python3. 7/site-packages/django/forms/__init__.py)

python - 我的项目根文件夹中没有名为 "xxx"的模块

python-3.x - 如何在极坐标图中弯曲文本?

python - 为什么 pygame 显示黑色窗口?

Python:执行长脚本而不阻塞主进程

python - 使用统计模型进行预测

python-3.x - 在 Python 中更改另一个类中的属性

python - 使用 Python 替换 HTML 文档中的 HTML 标记,而不修改文档的其余部分