0 знаков
27. Множества в Python
Кратко- Множества в Python - структура данных, похожая на множества из школьной математики.
- Главная особенность множеств - автоматическое удаление одинаковых значений.
- Множества могут упростить код на Python, например, при поиске уникальных значений в списке.
- В Python множества легко узнать по запятой и фигурным скобкам.
- Множество можно создать с помощью функции
set()
или конструктора множества.- Методы множеств: объединение, разность и пересечение.
- Объединение множества и слова: метод
union()
.- Разность множеств: метод
difference()
.- Пересечение множеств: метод
intersection()
.
В предыдущем уроке мы познакомились с методами словарей Python. Да, списки и словари позволяют решить большую часть задач, но этих структур недостаточно. В этом уроке рассмотрим множества, которые могут значительно упростить код на Python.
В Python множество – структура данных, которая очень похожа на множества из школьной математики. Главная особенность множества – автоматическое удаление одинаковых значений.
Предположим, у вас есть длинный список продуктов для покупки. Он настолько длинный, что некоторые продукты были написаны несколько раз. Чтобы оставить в нем только уникальные наименования, достаточно этот список преобразовать во множество. Далее пример:
numbers = {1, 3, 2, 5}
Множества в исходном коде Python легко узнать: объекты отделены между собой запятой и помещены внутрь фигурных скобок. Словари тоже обрамлены фигурными скобками, но объекты в них делятся на ключи и значения, между которым ставится знак двоеточие (:
).
Помните, как мы искали гласные буквы, которые попадаются в тексте в уроке про списки? Вот он:
letters = ["а", "е", "и", "о", "у", "э", "ю", "я"]
word = "список – это массив"
found = []
for item in word:
if item in letters:
if item not in found:
found.append(item)
for item in found:
print(item)
Уже скоро мы его упростим. А пока будем плавно подходить к этому. Создадим простое множество из букв и выведем его:
letters = {"а", "а", "о", "е", "е", "е"}
print(letters)
В результате вы увидите только три уникальные буквы. Аналогично, множество можно создать следующим образом:
letters = set("ааоеее")
print(letters) # => {'а', 'о', 'е'}
Итак, буквы во множество добавили. Теперь необходимо выяснить, есть ли в словах буквы из нашего множества. Казалось бы логично использовать цикл for
и оператор in
, но лучше раскроем для себя новые полезные методы, присущие множествам: объединение, разность и пересечение. Давайте объединим множество наших трех букв и какого-нибудь слова:
letters = set("ааоеее")
word = "Привет"
result = letters.union(set(word))
Обратите внимание, что перед объединением, слово в переменной word
было преобразовано во множество.
Теперь найдем отличие одного множества от другого. Для этого существует метод difference
:
letters = set("ааоеее")
word = "Привет"
result = letters.difference(set(word)) # => {'а', 'о'}
В возвращенном множестве содержатся две буквы, которые были в первом, но отсутствовали во втором.
И наконец, найдем пересечение или, другими словами, общие объекты. Именно этот метод поможет решить задачу с поиском букв из множества в заданном слове.
letters = set("ааоеее")
word = "Привет"
result = letters.intersection(set(word)) # => {'е'}
Теперь вы легко сможете решить ранее рассмотренную задачу буквально в две строки.
Подведем итог. Множества позволяют существенно упростить некоторые классы задач. Несмотря на это, не стоит сбрасывать со счетов другие структуры – у каждой свои плюсы. В этом уроке мы также рассмотрели методы присущие множествам: объединение, разность и пересечение.
Да, кстати, в этом уроке мы поверхностно посмотрели на методы множеств. В следующем уроке более подробно разберем методы для работы с множествами, а затем изучим отношения между множествами и операции над ними.
Тест
Похожие уроки Codebra
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ