检查一个列表中是否至少有 2 个值在另一个列表中
Check if at least 2 values from a list are in another list
我有一个列表:
["a", "b", "c", "d"]
并列出 b1:
["a", "b", "x"]
和 b2:
["a", "z", "x"]
如果 b1 至少有 2 个来自 a 的元素,则结果为 True。
如果 b2 至少有 2 个来自 a 的元素,则结果为真。
在此示例中,b1 == True 和 b2 == False。
如何在 Python 中检查?
这个函数应该做你想做的,使用集合和 set intersection。
def f(a, b):
return len(set(a) & set(b)) >= 2
用法:
>>> f(a, b1)
True
>>> f(a, b2)
False
或者,如果 b
有重复元素,您可以使用:
def f2(a, b):
return sum(x in a for x in b) >= 2
测试:
>>> f(a, ['a', 'a', 'x'])
False
>>> f2(a, ['a', 'a', 'x'])
True
我有一个列表:
["a", "b", "c", "d"]
并列出 b1:
["a", "b", "x"]
和 b2:
["a", "z", "x"]
如果 b1 至少有 2 个来自 a 的元素,则结果为 True。 如果 b2 至少有 2 个来自 a 的元素,则结果为真。
在此示例中,b1 == True 和 b2 == False。
如何在 Python 中检查?
这个函数应该做你想做的,使用集合和 set intersection。
def f(a, b):
return len(set(a) & set(b)) >= 2
用法:
>>> f(a, b1)
True
>>> f(a, b2)
False
或者,如果 b
有重复元素,您可以使用:
def f2(a, b):
return sum(x in a for x in b) >= 2
测试:
>>> f(a, ['a', 'a', 'x'])
False
>>> f2(a, ['a', 'a', 'x'])
True