检查一个列表中是否至少有 2 个值在另一个列表中

Veg*_*ega 2 python contains list

我有一个清单:

["a", "b", "c", "d"]
Run Code Online (Sandbox Code Playgroud)

并列出 b1:

["a", "b", "x"]
Run Code Online (Sandbox Code Playgroud)

和b2:

["a", "z", "x"]
Run Code Online (Sandbox Code Playgroud)

如果 b1 至少有 2 个来自 a 的元素,则结果为 True。如果 b2 至少有 2 个来自 a 的元素,则结果为 True。

在此示例中,b1 == True 且 b2 == False。

我如何在 Python 中检查这一点?

CDJ*_*DJB 5

该函数应该使用 set 和set junction来完成您想要的操作。

def f(a, b):
    return len(set(a) & set(b)) >= 2
Run Code Online (Sandbox Code Playgroud)

用法:

>>> f(a, b1)
True
>>> f(a, b2)
False
Run Code Online (Sandbox Code Playgroud)

或者,如果b有重复的元素,您可以使用:

def f2(a, b):
    return sum(x in a for x in b) >= 2
Run Code Online (Sandbox Code Playgroud)

测试:

>>> f(a, ['a', 'a', 'x'])
False
>>> f2(a, ['a', 'a', 'x'])
True
Run Code Online (Sandbox Code Playgroud)