В программировании на 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».
