Рубрики

Наборы в Python

Набор — это неупорядоченный тип данных коллекции, который является итеративным, изменяемым и не имеет повторяющихся элементов. Класс множеств Python представляет математическое понятие множества. Основное преимущество использования набора по сравнению со списком состоит в том, что он имеет высоко оптимизированный метод проверки того, содержится ли конкретный элемент в наборе. Это основано на структуре данных, известной как хеш-таблица .

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

# Программа Python для демонстрации различий
# между нормальным и замороженным множеством

  
# То же, что {"a", "b", "c"}

normal_set = set(["a", "b","c"])

  
# Добавление элемента в обычный набор - это нормально

normal_set.add("d")

  

print("Normal Set")

print(normal_set)

  
# Замороженный набор

frozen_set = frozenset(["e", "f", "g"])

  

print("Frozen Set")

print(frozen_set)

  
# Раскомментирование ниже строки вызовет ошибку как
# мы пытаемся добавить элемент в замороженный набор
# frozen_set.add ("h")

Выход:

Normal Set
set(['a', 'c', 'b', 'd'])
Frozen Set
frozenset(['e', 'g', 'f'])

Методы для множеств

1. Метод add (x): добавляет элемент x для установки, если он еще не присутствует в наборе.

people = {"Jay", "Idrish", "Archil"}
people.add("Daxit") 

-> Это добавит Daxit в набор людей.

2. Метод union (s) : возвращает объединение двух наборов. Использование '|' Оператор между 2 наборами аналогичен написанию set1.union (set2)

people = {"Jay", "Idrish", "Archil"}
vampires = {"Karan", "Arjun"}
population = people.union(vampires)

ИЛИ

population = people|vampires

-> Набор населения будет иметь компоненты как людей, так и вампиров

3. Метод intersect (s): возвращает пересечение двух множеств. В этом случае также может использоваться оператор '&'.

victims = people.intersection(vampires)

-> Набор жертв будет содержать общий элемент людей и вампиров

4. Способ (ы) разности: Возвращает набор, содержащий все элементы вызывающего набора, но не второго набора. Мы можем использовать оператор «-» здесь.

safe = people.difference(vampires)

ИЛИ

safe = people – vampires

-> В сейфе будут все элементы, которые есть у людей, но не у вампиров
5. clear () Метод: очищает весь набор.

victims.clear()

-> Очищает набор жертв

Однако в наборах Python есть две основные ловушки:

  1. Набор не поддерживает элементы в каком-либо определенном порядке.
  2. Только экземпляры неизменяемых типов могут быть добавлены в набор Python.

Операторы для множеств

Наборы и замороженные наборы поддерживают следующие операторы:

введите s # проверку содержимого

ключ не в s # проверке несохранения

s1 == s2 # s1 эквивалентно s2

s1! = s2 # s1 не эквивалентно s2

s1 = s2 # s1 является надмножеством s2

s1> s2 # s1 — правильный надмножество s2

s1 | s2 # объединение s1 и s2

s1 & s2 # пересечение s1 и s2

s1 — s2 # набор элементов в s1, но не s2

s1 ˆ s2 # множество элементов точно в одном из s1 или s2

Фрагмент кода для иллюстрации всех операций Set в Python

# Python программа для демонстрации работы # из
# Установить в Python

  
# Создание двух наборов

set1 = set()

set2 = set()

  
# Добавление элементов в set1

for i in range(1, 6):

    set1.add(i)

  
# Добавление элементов в set2

for i in range(3, 8):

    set2.add(i)

  

print("Set1 = ", set1)

print("Set2 = ", set2)

print("\n")

  
# Союз set1 и set2

set3 = set1 | set2# set1.union (set2)

print("Union of Set1 & Set2: Set3 = ", set3)

  
# Пересечение set1 и set2

set4 = set1 & set2# set1.intersection (set2)

print("Intersection of Set1 & Set2: Set4 = ", set4)

print("\n")

  
# Проверка связи между set3 и set4

if set3 > set4: # set3.issuperset (set4)

    print("Set3 is superset of Set4")

elif set3 < set4: # set3.issubset (set4)

    print("Set3 is subset of Set4")

else : # set3 == set4

    print("Set3 is same as Set4")

  
# отображение отношения между set4 и set3

if set4 < set3: # set4.issubset (set3)

    print("Set4 is subset of Set3")

    print("\n")

  
# разница между set3 и set4

set5 = set3 - set4

print("Elements in Set3 and not in Set4: Set5 = ", set5)

print("\n")

  
# checkv, если set4 и set5 являются непересекающимися множествами

if set4.isdisjoint(set5):

    print("Set4 and Set5 have nothing in common\n")

  
# Удаление всех значений из set5
set5.clear()

  

print("After applying clear on sets Set5: ")

print("Set5 = ", set5)

Выход:

('Set1 = ', set([1, 2, 3, 4, 5]))
('Set2 = ', set([3, 4, 5, 6, 7]))


('Union of Set1 & Set2: Set3 = ', set([1, 2, 3, 4, 5, 6, 7]))
('Intersection of Set1 & Set2: Set4 = ', set([3, 4, 5]))


Set3 is superset of Set4
Set4 is subset of Set3


('Elements in Set3 and not in Set4: Set5 = ', set([1, 2, 6, 7]))


Set4 and Set5 have nothing in common

After applying clear on sets Set5: 
('Set5 = ', set([]))

Последние статьи о наборе Python.

Эта статья предоставлена Джей Патель. Если вам нравится GeeksforGeeks и вы хотите внести свой вклад, вы также можете написать статью и отправить ее по почте на contrib@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

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

Рекомендуемые посты:

Наборы в Python

0.00 (0%) 0 votes