Проверьте, имеют ли два набора Python хотя бы один общий элемент - PullRequest
0 голосов
/ 04 апреля 2020

Какой самый быстрый способ проверить, имеют ли два набора в Python хотя бы один общий элемент? Желаемый вывод - True / False.

, например, я пытался с set.intersection (), но я бы хотел не проверять все элементы в обоих наборах.

set.intersection({1,2,3}, {8,9,2})
>>> {2}

ПРИМЕЧАНИЕ: Я ищу очень эффективное решение, которое работает с Python наборами (я не спрашиваю о списках)

Ответы [ 2 ]

1 голос
/ 04 апреля 2020

{1,2,3}.isdisjoint({4,5,6}) вернет истину, поскольку пересечения нет.

1 голос
/ 04 апреля 2020
def intersect(a, b):
    if len(a) > len(b):
        a, b = b, a   
    for c in a:
        if c in b:
            return c

Приведенный выше код аналогичен реализации intersection( ), за исключением того, что эта версия возвращает первый соответствующий элемент. Вы также можете вернуть true, если требуется, вместо первого соответствующего элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...