Поиск по сайту:

Изучите структуру данных Python Set/Frozenset – часть 4


В этой Части 4 серии статей о структурах данных Python мы обсудим, что такое набор, чем он отличается от других структур данных в Python, как создавать объекты набора, удалять объекты набора и методы объектов набора. .

  • Объект-множество — это неупорядоченная коллекция различных хешируемых объектов.
  • Set автоматически удаляет повторяющиеся элементы из объекта.
  • Поскольку заданные объекты неупорядочены, операции индексирования и нарезки не поддерживаются.

В настоящее время существует два встроенных типа наборов.

  1. set – поскольку он изменчив, он не имеет хеш-значения и не может использоваться как ключ словаря или как элемент другого набора.
  2. frozenset – неизменяемый и хешируемый – его содержимое нельзя изменить после создания; поэтому его можно использовать как ключ словаря или как элемент другого набора.

Построить объект набора

Создайте набор с помощью метода конструктора “set()” или с помощью фигурных скобок с запятой, разделяющих элементы “{a,b,c}”.

ПРИМЕЧАНИЕ. Вы не можете создать объект набора с помощью пустых фигурных скобок, так как это создаст объект словаря.

Установить методы

Используйте встроенную функцию “dir()” для получения списка доступных методов и атрибутов набора.

Добавить элементы для установки объекта

Как уже говорилось, set — это изменяемый тип. Вы можете добавлять, удалять и обновлять объект набора после его создания.

Давайте поговорим о двух методах установки: add и update.

  • метод add(elem) – этот метод добавляет один элемент к заданному объекту.
  • метод update(*others) – этот метод добавляет несколько элементов в заданный объект. Вы можете передавать изменяемые/неизменяемые объекты в качестве аргумента метода обновления.

ПРИМЕЧАНИЕ. Дубликаты будут автоматически удалены.

Удаление/очистка элементов из заданного объекта

Как вы уже видели ранее в других разделах о структурах данных (список, кортежи, словарь), для набора вы также можете использовать встроенное ключевое слово “del” для удаления объекта набора из пространства имен (т. е. Память).

Ниже приведены методы установки объектов для удаления элементов.

  • clear() – очистит все элементы, сделав набор пустым. Этот метод clear() доступен в других структурах данных, обеспечивающих ту же функциональность.
  • pop() – удаляет произвольные элементы.
  • discard(elem) – если элемент не найден в заданном объекте, метод discard() не вызовет никаких ошибок.
  • remove(elem) – то же, что и метод discard(), но вызывает ошибку KeyError, если элемент не найден.

Установить операции

Set предоставляет методы для выполнения математических операций, таких как пересечение, объединение, разность и симметричная разность. Помните «диаграмму Венна» из школьных лет?

Ниже мы рассмотрим методы выполнения математических операций.

  • союз
  • пересечение
  • перекресток_обновление
  • симметричная_разница
  • symmetric_difference_update
  • разница
  • разница_обновление
  • непересекающийся
  • issubset
  • issuperset

Союз, Пересечение, Разница, Симметричная_Разница

  • union(*other) – возвращает новый набор с элементами из набора и всеми остальными.
  • intersection(*other) – возвращает новый набор с элементами, общими для этого набора и всех остальных.
  • difference(*others) – возвращает новый набор с элементами, которых нет в других.
  • symmetric_difference(other) – возвращает новый набор с элементами либо из набора, либо из другого, но не из обоих.

Пересечение_Обновление

intersection_update(*others) — обновить набор, сохранив только найденные в нем элементы и все остальные.

Обновление различий

difference_update(*others) – обновить набор, сохранив только найденные в нем элементы и все остальные.

Symmetric_Difference_Update

symmetric_difference_update(other) – обновляет набор, сохраняя только элементы, найденные в любом наборе, но не в обоих.

Isdisjoint, Issubset, Issuperset

  • isdisjoint(other) – Возвращает True, если в наборе нет общих элементов с другими. Множества непересекающиеся тогда и только тогда, когда их пересечение является пустым множеством.
  • issubset() – проверяет, находится ли каждый элемент в множестве в другом.
  • issuperset() – Проверяет, все ли элементы другого элемента входят в набор.

Метод Копировать()

Вы можете создать идентичную копию существующего объекта набора, используя метод copy(). Этот метод также доступен для других типов структур данных, таких как список, словарь и т. д.

Удалите заданный объект из пространства имен с помощью встроенного ключевого слова del.

Холодное сердце

  • Замороженный набор является неизменяемым типом. После создания вы не сможете добавлять, удалять или обновлять элементы из списка.
  • Замороженный набор, будучи неизменяемым, хэшируется, может использоваться как "ключ" для словарей или элементов для другого объекта набора.
  • Замороженное множество создается с помощью функции “frozenset()”.
  • Замороженный набор предоставляет тот же набор методов по сравнению с «набором», например объединение(), пересечение, копирование(), isdisjoint() и т. д.

Краткое содержание

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