gpt4 book ai didi

python - 如何比较python中两个列表的每个元素

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

我正在寻找类似于 R 中的 %in% 的 Python 运算符。它将列表中的所有元素与另一个列表中的所有元素进行比较,并返回一个 bool 数组。它将执行以下操作:

a=['word1','word2','word3','word4']
b=['word2','word4']
a *%in%* b
>>False True False True

我发现的最接近的是 pd.str.contains 但它没有矢量化,即它只寻找一个元素。希望有人知道。

最佳答案

列表理解:

[item in b for item in a]

这将以类似于以下代码的方式创建一个新列表:

newList = []
for item in a:
newList.append(item in b)

如果 b 中存在 item,则 item in b 的计算结果为 True,否则计算结果为 错误


如评论中所述(感谢 Paul Rooney !),如果将 b 放入集合中,可以提高速度:

b_set = set(b)
result = [item in b_set for item in a]

这是因为如果 b 是一个集合,查找操作 item in b 需要一致的时间,而如果找到匹配项,则必须比较每个项目直到找到匹配项b 是一个列表。

如果 b 很小,速度提升不是很明显,但对于包含数百个元素的列表 b,这可能是一个很大的提升。

关于python - 如何比较python中两个列表的每个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52583025/

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