Искать
Вы превысили запрос на
0 знаков

27. Множества в Python

Не пройден
0
0

Кратко

- Множества в Python - структура данных, похожая на множества из школьной математики.

- Главная особенность множеств - автоматическое удаление одинаковых значений.

- Множества могут упростить код на Python, например, при поиске уникальных значений в списке.

- В Python множества легко узнать по запятой и фигурным скобкам.

- Множество можно создать с помощью функции set() или конструктора множества.

- Методы множеств: объединение, разность и пересечение.

- Объединение множества и слова: метод union().

- Разность множеств: метод difference().

- Пересечение множеств: метод intersection().

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

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

Предположим, у вас есть длинный список продуктов для покупки. Он настолько длинный, что некоторые продукты были написаны несколько раз. Чтобы оставить в нем только уникальные наименования, достаточно этот список преобразовать во множество. Далее пример:

Пример (python)
numbers = {1, 3, 2, 5} 

Множества в исходном коде Python легко узнать: объекты отделены между собой запятой и помещены внутрь фигурных скобок. Словари тоже обрамлены фигурными скобками, но объекты в них делятся на ключи и значения, между которым ставится знак двоеточие (:).

Помните, как мы искали гласные буквы, которые попадаются в тексте в уроке про списки? Вот он:

Пример (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) 

Уже скоро мы его упростим. А пока будем плавно подходить к этому. Создадим простое множество из букв и выведем его:

Пример (python)
letters = {"а", "а", "о", "е", "е", "е"}
print(letters) 

В результате вы увидите только три уникальные буквы. Аналогично, множество можно создать следующим образом:

Пример (python)
letters = set("ааоеее")
print(letters) # => {'а', 'о', 'е'} 

Итак, буквы во множество добавили. Теперь необходимо выяснить, есть ли в словах буквы из нашего множества. Казалось бы логично использовать цикл for и оператор in, но лучше раскроем для себя новые полезные методы, присущие множествам: объединение, разность и пересечение. Давайте объединим множество наших трех букв и какого-нибудь слова:

Пример (python)
letters = set("ааоеее")
word = "Привет"
result = letters.union(set(word)) 

Обратите внимание, что перед объединением, слово в переменной word было преобразовано во множество.

Теперь найдем отличие одного множества от другого. Для этого существует метод difference:

Пример (python)
letters = set("ааоеее")
word = "Привет"
result = letters.difference(set(word)) # => {'а', 'о'} 

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

И наконец, найдем пересечение или, другими словами, общие объекты. Именно этот метод поможет решить задачу с поиском букв из множества в заданном слове.

Пример (python)
letters = set("ааоеее")  
word = "Привет"  
result = letters.intersection(set(word)) # => {'е'} 

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

Подведем итог. Множества позволяют существенно упростить некоторые классы задач. Несмотря на это, не стоит сбрасывать со счетов другие структуры – у каждой свои плюсы. В этом уроке мы также рассмотрели методы присущие множествам: объединение, разность и пересечение.

Да, кстати, в этом уроке мы поверхностно посмотрели на методы множеств. В следующем уроке более подробно разберем методы для работы с множествами, а затем изучим отношения между множествами и операции над ними.

Тест

Две секундочки...

Похожие уроки Codebra

@codebra_official
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Итоги раздела «Структуры данных в Python»Знакомство с Python
Типы данных в PythonЗнакомство с Python
Методы и особенности множеств в PythonЗнакомство с Python
Первое знакомство с PythonЗнакомство с Python
Введение в раздел «Структуры данных в Python»Знакомство с Python
Генераторы и оператор yield в PythonЗнакомство с Python
Обработка исключений (try/except) в PythonЗнакомство с Python
Списки в PythonЗнакомство с Python
Массивы в PHPКурс по PHP
Впервые на сайте Codebra?

Извините за это всплывающее окно, меня они тоже раздражают.

Образовательный ресурс codebra.ru полностью посвящен программированию и компьютерной безопасности. Все курсы и уроки находятся на главной странице. Ради интереса можете посмотреть на содержимое курсов по Пентесту Active Directory, Python, HTML и CSS, JavaScript, C++ и другие, размещенные на главной странице.

Если что-то не нашли, то воспользуйтесь поиском по сайту, который находится на главной странице в самом верху.

Удачи в обучении!

Закрыть окно