Определение объектов set в Python

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

Хотя строгое определение набора может быть абстрактным, набор можно просто определить как неупорядоченный набор элементов. Каждый элемент в наборе уникален (без дубликатов), и над набором можно выполнять различные операции, такие как объединение, пересечение и т. Д.

Группирование объектов в набор также может быть полезно в программировании, и Python предоставляет для этого встроенный тип набора. Что вы узнаете из этого руководства:

  1. Как определить набор объектов в Python
  2. Откройте для себя некоторые из операций, поддерживаемых изначально.
  3. Настройте операции подробно и поймите, когда набор является подходящим выбором.

Это руководство было разделено на три части для облегчения доступа. Ссылка на учебник для частей II и III будет добавлена ​​в ближайшее время.

Определение набора

Есть два способа определить набор в Python:

  • встроенная set() функция
  • с фигурными скобками {}

Использование функции установки

Функция set принимает в качестве аргумента итерацию, такую ​​как список или кортеж. Синтаксис следующий:

output_set = set(<iterable>)

Например:

Из вышеприведенного вывода следует обратить внимание на две важные вещи:

  1. Результирующий набор неупорядочен
  2. Дубликаты удалены

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

Наборы значительно быстрее, когда дело доходит до определения, присутствует ли объект в наборе, но медленнее, чем списки, когда дело доходит до перебора их содержимого.

Как списки и кортежи, строки также могут быть переданы в функцию 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 имеет следующие характеристики:

Наборы неупорядочены.

Элементы декораций уникальны. Повторяющиеся элементы не допускаются.

Сам набор может быть изменен, но элементы, содержащиеся в наборе, должны быть неизменного типа.

Полезные ссылки

  1. Что такое набор?
  2. Наборы Python

Часть II этой истории доступна здесь.
Часть III этой истории доступна здесь.

Если вам нравится эта история, вам также может понравиться мой рассказ о Понимании списков в Python и Функции как объекты в Python.