Проверьте, есть ли хотя бы 2 значения из списка в другом списке - PullRequest
0 голосов
/ 24 января 2020

У меня есть список a:

["a", "b", "c", "d"]

и список b1:

["a", "b", "x"]

и b2:

["a", "z", "x"]

Если b1 имеет хотя бы 2 элемента из результата верно. Если b2 имеет как минимум 2 элемента из a, результат равен True.

В этом примере b1 == True и b2 == False.

Как это проверить в Python?

1 Ответ

2 голосов
/ 24 января 2020

Эта функция должна делать то, что вы хотите, используя наборы и набор пересечений .

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
...