Множества в Python: объяснение с примерами

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

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

Весь исходный код вы можете получить здесь.

Содержание

Что собой представляют множества в Python?

Представьте, что у вас собрались друзья из разных слоев общества, каждый из которых обладает своей уникальной индивидуальностью. Теперь представьте это собрание в виде множества – коллекции, в которой каждый индивидуум отличается от другого, подобно элементам множества в Python.

Точно так же, как на вашей вечеринке нет двух одинаковых гостей, так и во множества нет двух одинаковых элементов. Это понятие уникальности лежит в основе множеств.

Как создавать множества

В Python вы можете создать множество с помощью фигурных скобок {} или конструктора set(). Как и при рассылке приглашений на вечеринку, создание множества подразумевает указание уникальных элементов, которые вы хотите в него включить:

# Создание множества при помощи фигурных скобок

guest_set1 = {"Alice", "Bob", "Charlie", "David", "Eve"}

# Создание множества при помощи конструктора set()

guest_set2 = set(["David", "Eve", "Frank", "Grace", "Helen"])

Базовые операции со множествами

Как добавить элементы во множество

Множества в Python являются изменяемым типом данных. Это означает, что, создав множество, вы можете добавлять в него элементы и удалять их.

Добавление элементов во множество напоминает прием новых гостей на вашем званом вечере. Чтобы добавить новый элемент, вы можете использовать метод add():

guest_set1.add("Frank")

print(guest_set1)

# Вывод: {'Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank'}

Здесь метод add() добавляет имя “Frank” в guest_set1, оглашая появление нового гостя по имени Фрэнк на вашей вечеринке.

Как удалить элементы из множества

Аналогичным образом удаление элементов из множества символизирует прощание с уходящими гостями. Для этого можно использовать такие методы, как remove() или discard():

# Удаление элемента множества при помощи метода remove() 

guest_set1.remove("Charlie")

print(guest_set1)  

# Вывод: {'Alice', 'Bob', 'David', 'Eve', 'Frank'}


# Удаление элемента множества при помощи метода discard()

guest_set1.discard("Bob")

print(guest_set1)

# вывод: {'Alice', 'David', 'Eve', 'Frank'}

В первом примере метод remove() удаляет имя “Charlie” из guest_set1, имитируя уход гостя по имени Чарли с вашего собрания.

Во втором примере метод discard() удаляет имя “Bob” из guest_set1, что свидетельствует об уходе гостя по имени Боб.

Как очистить множество

Очистка множества удаляет все элементы, что напоминает перезагрузку вечеринки:

guest_set1.clear()

print(guest_set1)

# Вывод: set()

Метод clear() удаляет все элементы из guest_set1, эффективно сбрасывая его до состояния пустого множества.

Как получить длину множества

Точно так же, как вы можете подсчитать количество гостей на вашей вечеринке, вы можете определить длину множества с помощью функции len():

guest_set1 = {'Alice', 'David', 'Eve', 'Frank'}
print(len(guest_set1))  

# Вывод: 4

Функция len() возвращает количество элементов в guest_set1, что указывает на общее количество гостей, присутствующих на вашем званом вечере.

Специфические операции со множествами

Объединение множеств

Объединение двух множеств комбинирует элементы из обоих множеств, гарантируя отсутствие дубликатов:

all_guests = guest_set1.union(guest_set2)

print(all_guests)

# Вывод: {'Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank', 'Grace', 'Helen'}

Здесь метод union() объединяет guest_set1 и guest_set2 в новое множество all_guests, представляющее собой объединенный список гостей с обеих вечеринок и без дубликатов.

Пересечение множеств

Метод intersection (переводится как «пересечение») определяет элементы, общие для обоих множеств. Это напоминает поиск гостей, посетивших обе вечеринки:

common_guests = guest_set1.intersection(guest_set2)

print(common_guests)

# Вывод: {'David', 'Eve'}

Метод intersection() определяет гостей, присутствующих одновременно в guest_set1 и guest_set2, и сохраняет их во множестве common_guests.

Разность множеств

Разность множеств показывает те элементы одного множества, которых нет во втором множестве. В нашем примере в разность попадут гости, посетившие первую вечеринку, но отсутствовавшие на второй:

unique_to_guest_set1 = guest_set1.difference(guest_set2)

print(unique_to_guest_set1)

# Вывод: {'Alice', 'Frank'}

Метод difference() определяет гостей, присутствующих в guest_set1, но не присутствующих в guest_set2, сохраняя их во множестве unique_to_guest_set1.

Симметричная разность множеств

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

exclusive_guests = guest_set1.symmetric_difference(guest_set2)

print(exclusive_guests) 

# Вывод: {'Bob', 'Charlie', 'Grace', 'Alice', 'Frank', 'Helen'}

Метод symmetric_difference() определяет гостей, присутствующих исключительно в guest_set1 или guest_set2, сохраняя их во множестве exclusive_guests.

Другие полезные операции

Подмножества и надмножества

Вы можете определить, является ли одно множество подмножеством или надмножеством другого:

# Проверка, являеется ли одно множество подмножеством другого

print(guest_set1.issubset(all_guests))

# Вывод: True


# Проверка, являеется ли одно множество надмножеством другого

print(all_guests.issuperset(guest_set1))

# Вывод: True

Эти методы проверяют, является ли guest_set1 подмножеством all_guests и является ли all_guests надмножеством guest_set1, указывая на связь между двумя вечеринками.

Заключение

Поняв аналогию и операции, описанные в этом руководстве, вы сможете использовать силу множеств в своем путешествии по Python.

Счастливого кодинга, и пусть ваши вечеринки – как цифровые, так и реальные – будут наполнены уникальным опытом и плодотворным взаимодействием!

Перевод статьи «How to Use Sets in Python – Explained with Examples».

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *