Найти тему
Каждодневье

Использование множеств в Python: Упрощение работы с наборами данных.

Оглавление

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

Множество задается парой способов:

-2

Порой возникает путаница между множеством и словарем из-за одинакового обрамления фигурными скобками. Отличие в том, что в множестве нет кортежных пар ключ-значение, которые имеют связь через двоеточие. В множестве только запятые.

Но общее у них есть — полностью отсутствующий порядок добавления элементов. Если вам нужно отразить в выводе отсортированные значения, воспользуйтесь функцией sorted(), передав скобки множество:

-3

Базовые операции над множествами

add() - метод, добавляющий элемент в множество. Если попытаться добавить уже имеющиеся, то они будут проигнорированы:

{'Катя', 'Маша', 'Элвис'}, повторное добавление было проигнорировано.
{'Катя', 'Маша', 'Элвис'}, повторное добавление было проигнорировано.

remove() - метод, удаляющий элементы из множества. Если удаляемого элемента в множестве нет - будет вызвано исключение KeyError.

Пример удаления элемента.
Пример удаления элемента.

discard() - родственный метод удаления данных, но без капризов в тех случаях, когда пытаемся удалить несуществующее:

Плохо, что из времен года нельзя отнять слякотные переходняки :-(
Плохо, что из времен года нельзя отнять слякотные переходняки :-(

pop() - Удаление спонтанного элемента в множестве. Удобно, когда надо просто уменьшать массив. KeyError тогда, когда элементов не останется:

Наглядная визуализация, как метод возвращает удаляемое, и обновляется массив данных.
Наглядная визуализация, как метод возвращает удаляемое, и обновляется массив данных.

clear() - Очистка массива данных. Сама переменная остается (связана с ячейками данных, в которых установлено множество). Всегда есть возможность возвести новые данные :-) :

Пример замещения через очистку данных в множестве.
Пример замещения через очистку данных в множестве.

Расширенные возможности

Редко, но метко выстреливают и другие методы работы с этим массивом данных, а именно пересечение, объединение и разность:

intersection() - функция, отвечающая за нахождение пересечений (совпадений) в указанных множествах. Если их нет, то будет возвращен пустой контейнер данных, он же False.

Букв много в методе, поэтому его частенько заменяют оператором пересечения множеств - &

Пример нахождения совпадающих элементов в двух множествах.
Пример нахождения совпадающих элементов в двух множествах.

union() - функция, которая объединяет (складывает) уникальные значения из указанных множеств. Для данного функционала также есть оператор объединения | :

Пример сложения множеств через функцию и оператор.
Пример сложения множеств через функцию и оператор.

difference() - функция, определяющая разность множеств. Другими словами ей суждено находить то, чего нет в множестве указанном в скобках. Оператором за это дело отвечает знак вычета (минус-тире) - :

-11

symmetric_difference() - метод поиска уникальных элементов между указанными множествами. 22 буквы можно упростить оператором ^

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

Это не все методы множеств, но я попросту не сталкивался с ними в своей работе, так как это более углубленные знания, которые часто не используются.
Это функции проверки
issubset() что одно множество является подмножеством другого.

Метод
issuperset() - определяющий, что множество множеств, противоположно подмножеству :-). Даже звучит как ребус.

Надеюсь было занятно - уровень
страданий стараний над постом был повышенным.


Ставьте лайки и подписывайтесь на канал!

По теме "работа с контейнерами" другие записи:
Списки, кортежи, словари