Python: Cловари и множества
2026-02-26 23:20 Diff

Существуют операторы, которые позволяют различными способами комбинировать множества. Эти операторы максимально похожи на те, что применяются в теории множеств в математике. Эта похожесть — очень важное свойство, которые мы изучим в этом уроке.

Операции над множествами как методы

С теорией множеств программисты обычно знакомы, хотя бы поверхностно. Поэтому множества нужно использовать в сочетании с операторами. Однако было бы неправильно умолчать, что у каждого оператора есть свой словесный метод-аналог.

Познакомимся с этими методами-аналогами:

Обновление множеств «по месту»

Есть еще одна причина, по которой мы рассказываем про четыре метода выше. Вспомним метод update у словаря, который обновляет словарь «по месту» с помощью данных из другого словаря.

Так вот, для множеств существует несколько таких update-методов:

  • difference_update
  • intersection_update
  • symmetric_difference_update
  • update

Рассмотрим их подробнее:

  1. Метод difference_update работает похоже на -/difference. Он удаляет из связанного множества все элементы, которые входят в множество-аргумент:

  2. Метод intersection_update и его изменяющий аналог &/intersection. Он оставляет в связанном множестве только те элементы, которые входят и в множество-аргумент:

  3. Метод symmetric_difference_update и его изменяющий аналог ^/symmetric_difference. Он добавляет в связанное множество элементы, которые есть только в множестве-аргументе. Также он удаляет элементы, которые есть в обоих множествах:

  4. Метод update и его изменяющий аналог |/union. Он дополняет связанное множество отсутствующими элементами из множества-аргумента:

    С точки зрения единообразия метод update надо было бы назвать union_update. Для него выбрали более распространенное имя update, потому что это имя часто используется для сходных по смыслу методов других коллекций.

Рекомендуемые программы