Упражнения по множествам в Python

Привет, будущие волшебники Python! Сегодня мы погрузимся в волшебный мир Python-множеств. Не волнуйтесь, если вы раньше никогда не писали код — я стану вашим дружелюбным гидом в этом увлекательном путешествии. К концу этого урока вы сможете создавать множества как про!

Python - Set Exercises

Что такое множество?

Перед тем как перейти к упражнениям, давайте быстро осознаем, что такое множество в Python. Представьте себе, что у вас есть мешок с шариками, но каждый шарик может быть в мешке только один раз. Это и есть множество в Python — это набор уникальных элементов.

Множества неупорядочены, что意味着 элементы не имеют определенного места. Они также изменяемые, так что мы можем добавлять или удалять элементы. Однако сами элементы должны быть неизменяемыми (например, числа или строки, но не списки).

Теперь, давайте натянем рукава и начнем кодить!

Python Set Exercise 1: Создание и манипуляция множествами

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

Начнем с создания простого множества:

fruits = {"apple", "banana", "cherry"}
print(fruits)

Когда вы выполните этот код, вы увидите:

{'cherry', 'banana', 'apple'}

Заметили, как порядок может отличаться от того, что мы ввели? Вот так потому, что множества неупорядочены!

Добавление элементов в множество

Теперь добавим еще несколько фруктов в наше множество:

fruits.add("dragonfruit")
print(fruits)

fruits.update(["elderberry", "fig"])
print(fruits)

Вывод:

{'cherry', 'banana', 'apple', 'dragonfruit'}
{'fig', 'cherry', 'banana', 'elderberry', 'apple', 'dragonfruit'}

Видите, как мы использовали add() для одного элемента и update() для нескольких элементов? Это как добавление одного шарика в ваш мешок против пускания туда целого handful!

Удаление элементов из множества

Давайте удалим некоторые фрукты:

fruits.remove("banana")
print(fruits)

fruits.discard("grape")  # Это не вызовет ошибки, даже если "grape" не в множестве
print(fruits)

Вывод:

{'fig', 'cherry', 'elderberry', 'apple', 'dragonfruit'}
{'fig', 'cherry', 'elderberry', 'apple', 'dragonfruit'}

remove() вызовет ошибку, если элемент не существует, а discard() — нет. Это как-carefully выбирать конкретный шарик против случайного поиска для удаления.

Python Set Exercise 2: Операции с множествами

Теперь, когда мы освоили основы, давайте погуляем с несколькими множествами!

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

Представьте, что у вас и у вашего друга есть мешки с шариками. Объединение — это все уникальные шарики, которые у вас есть вместе.

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
union_set = set1.union(set2)
print(union_set)

Вывод:

{1, 2, 3, 4, 5, 6, 7, 8}

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

Пересечение — это шарики, которые у вас обоих есть.

intersection_set = set1.intersection(set2)
print(intersection_set)

Вывод:

{4, 5}

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

Разность — это шарики, которые у вас есть, а у вашего друга нет.

difference_set = set1.difference(set2)
print(difference_set)

Вывод:

{1, 2, 3}

Python Set Exercise 3: Продвинутые операции с множествами

Готовы подняться на новый уровень? Давайте разберем более сложные операции!

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

Это дает нам все шарики, которые есть в одном множестве, но не в обоих.

symmetric_difference = set1.symmetric_difference(set2)
print(symmetric_difference)

Вывод:

{1, 2, 3, 6, 7, 8}

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

Давайте проверим, является ли одно множество подмножеством другого:

set3 = {1, 2, 3}
print(set3.issubset(set1))  # Является ли set3 подмножеством set1?
print(set1.issuperset(set3))  # Является ли set1 надмножеством set3?

Вывод:

True
True

Это как проверка, все ли ваши шарики также в большей коллекции вашего друга!

Замороженные множества

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

frozen_fruits = frozenset(["apple", "banana", "cherry"])
print(frozen_fruits)

# Это вызовет ошибку:
# frozen_fruits.add("dragonfruit")

Вывод:

frozenset({'cherry', 'banana', 'apple'})

Представьте замороженное множество как мешок с шариками, запечатанным в лед — вы можете посмотреть, но не можете тронуть!

Резюме методов множеств

Вот удобная таблица с методами множеств, которые мы изучили:

Метод Описание
add() Добавляет элемент в множество
update() Обновляет множество элементами из другого множества или итерируемого
remove() Удаляет указанный элемент (вызывает ошибку, если не найден)
discard() Удаляет указанный элемент (нет ошибки, если не найден)
union() Возвращает множество, содержащее объединение множеств
intersection() Возвращает множество, содержащее пересечение множеств
difference() Возвращает множество, содержащее разность множеств
symmetric_difference() Возвращает множество с элементами в любом множестве, но не в обоих
issubset() Проверяет, является ли множество подмножеством другого множества
issuperset() Проверяет, является ли множество надмножеством другого множества

Итак, это было! Вы только что подняли свои навыки Python с множествами. Помните, практика совершенства, так что продолжайте играть с этими концепциями. И не знаю как, вы будете манипулировать множествами как настоящий Python-сорcerer!

Credits: Image by storyset