#python
#питон
Вопрос:
Мне было интересно, есть ли разница между использованием «amp;» и «.intersection()» при нахождении пересечения двух наборов в Python. Если да, то каковы они?
Спасибо.
Ответ №1:
Вы можете прочитать официальную документацию. Вот основное отличие (курсив мой) :
Обратите внимание, что неоператорные версии методов union(), intersection(), difference() и symmetric_difference(), issubset() и issuperset() будут принимать любую итерацию в качестве аргумента. Напротив, их аналоги на основе операторов требуют, чтобы их аргументы были наборами. Это исключает подверженные ошибкам конструкции, такие как set(‘abc’) amp; ‘cbs’, в пользу более читаемого set(‘abc’).intersection(‘cbs’).
Использование неоператорной функции не требует преобразования итерации в виде набора.