Чем `isdisjoint()` отличается от `intersection()`?

isdisjoint() проверяет, не имеют ли два множества общих элементов. Возвращает True, если пересечение пустое, и False в противном случае. Не меняет множества. intersection() возвращает новое множество, содержащее только общие элементы двух или более множеств. Исходные множества не изменяются.

Методы isdisjoint() и intersection() оба используются для работы с множествами (set) в Python, но выполняют разные задачи. Их ключевые отличия заключаются в следующем:

isdisjoint():

  • Проверяет, имеют ли два множества какие-либо общие элементы.
  • Возвращает True, если множества не пересекаются (то есть не имеют общих элементов), и False в противном случае.
  • Не изменяет ни одно из исходных множеств.
  • По сути, это проверка на наличие или отсутствие общих элементов, а не получение самих общих элементов.

intersection():

  • Находит общие элементы между двумя или более множествами.
  • Возвращает новое множество, содержащее только те элементы, которые присутствуют во всех исходных множествах.
  • Не изменяет ни одно из исходных множеств.
  • Возвращает сами общие элементы, а не просто результат проверки на их наличие.

Пример:


set1 = {1, 2, 3}
set2 = {3, 4, 5}
set3 = {6,7,8}

print(set1.isdisjoint(set2))  # Output: False (есть общий элемент 3)
print(set1.isdisjoint(set3))  # Output: True (нет общих элементов)

print(set1.intersection(set2)) # Output: {3} (возвращает множество, содержащее общий элемент 3)
print(set1.intersection(set3)) # Output: {} (возвращает пустое множество, т.к. нет общих элементов)

Вкратце, isdisjoint() предназначен для проверки, пересекаются ли множества, а intersection() - для получения множества общих элементов. isdisjoint() возвращает булево значение, а intersection() - множество.

0