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