Skip to main content
 首页 » 编程设计

python之查找列表的任何元素是否在另一个列表中

2025年05月04日10dflying

我有一个主列表 A 和一个辅助列表 B。 A 包含 B 的所有元素,还包含其他元素。我想确定A 中不 出现在B 中的值。例如:

A = ['two', 'roads', 'diverged', 'in', 'a'] 
B = ['roads', 'in'] 

我想要的是:

['two', 'diverged', 'a'] 

如果 B 只包含一个元素,比如说 roads,我可以做一些事情来达到这样的效果:

for i in range(0, len(A)): 
    if 'roads' not in A[i]: 
        print A[i] 

但是如果 B 有多个元素,我就会卡住,它确实如此。我找到了 any() 函数,但不确定为什么它不起作用:

for i in range(0, len(A)): 
    if any(B) not in A[i]: 
        print A[i] 

(我看了一些其他答案,但找不到我要找的东西。这可能在其他地方被问过。如果是这样,请原谅我问了两次。)

请您参考如下方法:

[item for item in a if item not in b] 

您也可以通过执行 set(a) - set(b) 来使用集合,但我相信这会稍微慢一些。此外,使用集合还会删除结果中的重复值,这可能是您想要的,也可能不是您想要的。