Определение объектов set в Python
В старшей школе вы, должно быть, сталкивались с наборами и теорией множеств. Это тот же класс, в котором вы рисовали эти крутые перекрывающиеся круги, которые называются диаграммами Венна.
Хотя строгое определение набора может быть абстрактным, набор можно просто определить как неупорядоченный набор элементов. Каждый элемент в наборе уникален (без дубликатов), и над набором можно выполнять различные операции, такие как объединение, пересечение и т. Д.
Группирование объектов в набор также может быть полезно в программировании, и Python предоставляет для этого встроенный тип набора. Что вы узнаете из этого руководства:
- Как определить набор объектов в Python
- Откройте для себя некоторые из операций, поддерживаемых изначально.
- Настройте операции подробно и поймите, когда набор является подходящим выбором.
Это руководство было разделено на три части для облегчения доступа. Ссылка на учебник для частей II и III будет добавлена в ближайшее время.
Определение набора
Есть два способа определить набор в Python:
- встроенная
set()
функция - с фигурными скобками
{}
Использование функции установки
Функция set принимает в качестве аргумента итерацию, такую как список или кортеж. Синтаксис следующий:
output_set = set(<iterable>)
Например:
Из вышеприведенного вывода следует обратить внимание на две важные вещи:
- Результирующий набор неупорядочен
- Дубликаты удалены
Второе свойство, с помощью которого удаляются дубликаты, позволяет нам использовать заданные объекты для различных операций, таких как индексация и т. Д.
Наборы значительно быстрее, когда дело доходит до определения, присутствует ли объект в наборе, но медленнее, чем списки, когда дело доходит до перебора их содержимого.
Как списки и кортежи, строки также могут быть переданы в функцию set()
.
Фигурные скобки
Как вариант, набор можно определить с помощью фигурных скобок ({}
). Синтаксис следующий:
x = {<item>, <item>, ..., <item>}
Каждый <item>
станет отдельным элементом набора, даже если элемент является повторяющимся. Давайте посмотрим, как это работает на практике:
Разница между этими двумя методами заключается в том, как они работают с итерациями.
>>> {'abbbac'} {'abbbac'} >>> set('abbbac') {'a', 'c', 'b'}
Определение пустого набора
Поскольку Python интерпретирует пустые фигурные скобки как пустой словарь, мы определяем пустой набор в Python как:
Python не требует, чтобы наборы содержали похожие объекты. Элементы в наборе могут быть объектами разных типов:
>>> x = {2, 2.01, 'abc', (1,2,3)} >>> x set([2, 'abc', 2.01, (1, 2, 3)])
Важно понимать, что набор может быть изменен, но элементы набора должны быть неизменными. Итак, хотя кортеж может быть частью набора, список не может.
Заключение
Встроенный в Python тип set
имеет следующие характеристики:
Наборы неупорядочены.
Элементы декораций уникальны. Повторяющиеся элементы не допускаются.
Сам набор может быть изменен, но элементы, содержащиеся в наборе, должны быть неизменного типа.
Полезные ссылки
Часть II этой истории доступна здесь.
Часть III этой истории доступна здесь.
Если вам нравится эта история, вам также может понравиться мой рассказ о Понимании списков в Python и Функции как объекты в Python.