Что такое множество в Python?

Множество (set) в Python - это неупорядоченная коллекция уникальных элементов. Поддерживает операции над множествами, такие как объединение, пересечение, разность и т.д. Создается с помощью `{}` или функции `set()`.

В Python множество (set) - это неупорядоченная коллекция уникальных элементов. Это значит, что множество не может содержать повторяющиеся значения, и порядок элементов в множестве не гарантируется и может изменяться со временем.

Основные характеристики множеств:

  • Уникальность: Каждый элемент в множестве появляется только один раз. При попытке добавить дубликат, он будет автоматически проигнорирован.
  • Неупорядоченность: Элементы в множестве не хранятся в каком-либо определенном порядке. Нельзя обратиться к элементу множества по индексу.
  • Изменяемость: Множества можно изменять после создания: можно добавлять и удалять элементы. (Mutable)
  • Хешируемость элементов: Элементы множества должны быть хешируемыми (immutable). Это значит, что элементами множества могут быть числа, строки, кортежи, но не списки или другие изменяемые множества.

Создание множества:

  • С использованием фигурных скобок {}: my_set = {1, 2, 3}
  • С использованием функции set(): my_set = set([1, 2, 3]) или my_set = set((1, 2, 3)) или my_set = set("abc")
  • Для создания пустого множества необходимо использовать set(), так как {} создаст пустой словарь.

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

  • add(element): Добавляет элемент в множество.
  • remove(element): Удаляет элемент из множества. Вызывает ошибку, если элемента нет в множестве.
  • discard(element): Удаляет элемент из множества, если он там есть. Не вызывает ошибку, если элемента нет.
  • pop(): Удаляет и возвращает произвольный элемент из множества.
  • clear(): Удаляет все элементы из множества.
  • union(other_set) или |: Возвращает объединение двух множеств.
  • intersection(other_set) или &: Возвращает пересечение двух множеств.
  • difference(other_set) или -: Возвращает разность двух множеств.
  • symmetric_difference(other_set) или ^: Возвращает симметричную разность двух множеств (элементы, которые есть либо в одном, либо в другом множестве, но не в обоих).
  • len(my_set): Возвращает количество элементов в множестве.
  • in: Проверяет, содержится ли элемент в множестве. Например: if 1 in my_set: ...

Пример использования:


    # Создание множества
    my_set = {1, 2, 3, 3, 4, 5}  # Дубликат '3' будет удален

    # Добавление элемента
    my_set.add(6)

    # Удаление элемента
    my_set.remove(1)  # Удалит '1'
    #my_set.remove(10) # Вызовет ошибку KeyError, если 10 нет во множестве
    my_set.discard(10) # Не вызовет ошибку, если 10 нет во множестве

    # Операции над множествами
    set1 = {1, 2, 3}
    set2 = {3, 4, 5}

    union_set = set1.union(set2)  # {1, 2, 3, 4, 5}
    intersection_set = set1.intersection(set2)  # {3}
  

Когда использовать множества?

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

0