gpt4 book ai didi

python - 在列表 A 中找到第一个索引,其中值在列表 B 中

转载 作者:太空宇宙 更新时间:2023-11-04 10:11:09 24 4
gpt4 key购买 nike

我想在 A 中找到第一个包含 B 值的索引。例如:

A = [1, 'Q', 3, 6, 'R']
B = ['Z', 'I', 'O', 3]
A.function(B) # would return 2

有没有简单的方法来做到这一点?显然,您可以在 A 中搜索 B 中的每个项目并采用最小索引,但这比尝试每个索引的所有 B 慢.

最佳答案

我认为有两种广泛的方法,具体取决于哪个列表更长:

  1. AB 长:

    一次在A 中取一个项目,看看它是否在B 中。重复直到找到第一个。

    next(index for index, item in enumerate(A) if item in B)

    如果将 B 转换为 set(感谢 @khelwood),这会更有效,但请务必在 开始,不在生成器表达式内。

  2. BA 长:

    找到 B 中每个项目在 A 中的索引,然后最小化:

    indices = []
    for item in B:
    try:
    indices.append(A.index(item))
    except ValueError:
    pass
    min(indices)

    请注意,您不能使用:

    min(index for index in map(A.index, B) if index > -1)

    (哎呀!)因为 list 没有一种方法可以无错误地获取索引(参见例如 list.index() function for Python that doesn't throw exception when nothing found )。

关于python - 在列表 A 中找到第一个索引,其中值在列表 B 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38220117/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com