Работа со множествами

Множество (set) — структура данных, которая хранит уникальные значения без учета порядка следования.

Как объявить:


a = {1, 2, 3}
b = set()
c = set([1,2,3])

Элементом множества НЕ могут быть значения типа:

  • список (list)
  • словарь (dict)
  • множество (set)
  • байтовый массив (bytearray)

Как обойти в цикле:


for elem in a:
    print(elem)

Операторы

  • a & b — пересечение множеств
  • a | b — объединение множеств
  • a ^ b — симметричная разность множеств
  • a - b — разность множеств
  • a > b — проверка что b - подмножество a
  • a >= b — проверка что b - подмножество a
  • a < b — проверка что a - подмножество b
  • a <= b — проверка что a - подмножество b
  • a == b — проверка что a равно b
  • a != b — проверка что a равно b
  • a is b — проверка на идентичность
  • a not is b — проверка на идентичность

Методы

  • .add() — добавление элементов ко множеству
  • .clear() — очистка множества
  • .copy() — создание копии множества
  • .discard() — удаляет указанный элемент из множества (без ошибки если не найден)
  • .remove() — удаляет указанный элемент из множества (ошибка если не найден)
  • .pop() — извлекает случайный элемент из множества
  • .isdisjoint() — проверка на отсутствие общих элементов
  • a.issubset(b) — то же что и a <= b
  • a.issuperset(b) — то же что и a >= b
  • a.difference(b) — то же что и a - b
  • a.difference_update(b) — то же что и a = a - b или a -= b
  • a.intersection(b) — то же что и a & b
  • a.intersection_update(b) — то же что и a = a & b или a &= b
  • a.symmetric_difference(b) — то же что и a ^ b
  • a.symmetric_difference_update(b) — то же что и a = a ^ b или a ^= b
  • a.union(b) — то же что и a | b
  • a.update(b) — то же что и a = a | b или a |= b