Skip to main content
 首页 » 编程设计

python之如何检查一个元素是否也在另一个列表中

2025年05月04日13lyhabc

想象一个函数:

def Intersects (x, list1, list2, list3): 
    if x in list1 and x in list2 and x in list3: return True 
    return False 

必须有更好的方法来执行此操作,但我无法弄清楚。我怎样才能做到这一点? (性能很重要)

编辑:这次我遇到了一个相关但更难的问题。这次我有 3 个不相关的整数,我需要测试它们是否也相交。

喜欢:

1, 2, 3 <-- elements to look for 
if InAll ((1, 2, 3)) ... 

但我不是在寻找元组,而是在寻找整数。如何解压元组并进行相同的搜索?

请您参考如下方法:

如果您希望能够为其提供任意数量的列表(不仅仅是三个),您可能会喜欢:

def inAll(x, *lsts): 
    return all((x in l) for l in lsts) 

如果您多次检查这些列表中的成员资格(即在许多 x 上),您需要将每个列表都设为 set在开始循环 x 之前。

从您最近的编辑来看,您似乎还希望能够在 x 中传递多个项目。代码为:

def inAll(xs, *lsts): 
    return all(all(x in l for x in xs) for l in lsts)