Python множества: Урок 11 — Уникальные элементы

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

Свойства множеств

  • Неупорядоченность: Элементы множества не упорядочены.
  • Уникальность элементов: Все элементы уникальны, дубликаты отсутствуют.
  • Изменяемость: Элементы множества неизменяемы. Само множество можно изменять (добавлять, удалять элементы).

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

Создать множество можно несколькими способами:

  1. Фигурные скобки:

    chisla = {1, 2, 4, 6, 7}
    print(chisla) 

    Элементами могут быть числа, строки и другие типы данных.

  2. Пустое множество: Пустое множество создаётся функцией set():

    pusto = set()
    print(type(pusto)) # <class 'set'>
  3. Из других структур: Множество создаётся из списка или кортежа функцией set(). Это удобно для удаления дубликатов:

    spisok = [1, 1, 1, 2, 4, 2]
    mnozhestvo = set(spisok)
    print(mnozhestvo) # {1, 2, 4}

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

Доступ к элементам

Доступ к элементам осуществляется циклом for:

numbers = {1, 2, 3, 4, 5, 6, 7}
for x in numbers:
    print(x)

Проверка наличия элемента — оператор in:

print(3 in numbers)  # True
print(58 in numbers) # False

Добавление и удаление элементов

  • Добавление: Метод add() добавляет элемент:

    numbers.add(58)
    print(numbers)
  • Удаление:

    • discard() удаляет элемент, если он присутствует. Ошибка не возникает, если элемента нет.

      numbers.discard(58)
      print(numbers)
    • remove() удаляет элемент. Вызывает ошибку KeyError, если элемента нет.

      numbers.remove(3)  
      print(numbers)
    • pop() удаляет и возвращает произвольный элемент.
    • clear() удаляет все элементы:

      numbers.clear()
      print(numbers) # set()

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

  • Объединение: union() или |:
set1 = {2, 6, 54, 40}
set2 = {2, 3}
set3 = set1.union(set2) # или set3 = set1 | set2
print(set3) # {2, 3, 6, 40, 54}
  • Пересечение: intersection() или &:
set4 = set1.intersection(set2) # или set4 = set1 & set2
print(set4) # {2}
  • Разность: -:
set5 = set1 - set2
print(set5) # {54, 40, 6}
  • Копирование: copy():
set6 = set1.copy()
print(set6)
  • Длина: len():
print(len(set1))

Неизменяемые множества

Неизменяемое множество создаётся функцией frozenset():

immutable_set = frozenset({1, 2, 3, 4, 5, 6, 7})
# immutable_set.add(8) #  Вызовет ошибку AttributeError
print(immutable_set)
print(type(immutable_set)) # <class 'frozenset'>

Множества — эффективный инструмент в Python для работы с уникальными данными. Знание их свойств и методов позволяет эффективно обрабатывать коллекции данных.

Что будем искать? Например,программа