Python - Наборы

Математически набор - это набор предметов, не расположенных в каком-либо определенном порядке. Набор Python похож на это математическое определение с дополнительными условиями ниже.

  • Элементы в наборе не могут быть дубликатами.
  • Элементы в наборе неизменяемы (не могут быть изменены), но набор в целом является изменяемым.
  • Ни к одному элементу в наборе Python не привязан индекс. Таким образом, они не поддерживают операции индексирования или нарезки.

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

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

Создание набора

Набор создается с помощью функции set () или помещения всех элементов в пару фигурных скобок.

Days=set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"])
Months={"Jan","Feb","Mar"}
Dates={21,22,17}
print(Days)
print(Months)
print(Dates)

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

set(['Wed', 'Sun', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])
set(['Jan', 'Mar', 'Feb'])
set([17, 21, 22])

Доступ к значениям в наборе

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

Days=set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"])
 
for d in Days:
	print(d)

Когда приведенный выше код выполняется, он дает следующий результат.

Wed
Sun
Fri
Tue
Mon
Thu
Sat

Добавление предметов в набор

Мы можем добавлять элементы в набор, используя метод add (). Опять же, как уже говорилось, к вновь добавленному элементу не привязан конкретный индекс.

Days=set(["Mon","Tue","Wed","Thu","Fri","Sat"])
 
Days.add("Sun")
print(Days)

Когда приведенный выше код выполняется, он дает следующий результат.

set(['Wed', 'Sun', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])

Удаление предмета из набора

Мы можем удалить элементы из набора, используя метод discard (). Опять же, как уже говорилось, к вновь добавленному элементу не привязан конкретный индекс.

Days=set(["Mon","Tue","Wed","Thu","Fri","Sat"])
 
Days.discard("Sun")
print(Days)

Когда приведенный выше код выполняется, он дает следующий результат.

set(['Wed', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])

Союз множеств

Операция объединения двух наборов создает новый набор, содержащий все отдельные элементы из обоих наборов. В приведенном ниже примере элемент «ср» присутствует в обоих наборах.

DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Wed","Thu","Fri","Sat","Sun"])
AllDays = DaysA|DaysB
print(AllDays)

Когда приведенный выше код выполняется, он дает следующий результат. Обратите внимание, в результате получился только один «брак».

set(['Wed', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])

Пересечение множеств

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

DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Wed","Thu","Fri","Sat","Sun"])
AllDays = DaysA & DaysB
print(AllDays)

Когда приведенный выше код выполняется, он дает следующий результат. Обратите внимание, в результате получился только один «брак».

set(['Wed'])

Разница наборов

Операция разницы для двух наборов создает новый набор, содержащий только элементы из первого набора и ни одного элемента из второго набора. В приведенном ниже примере элемент «среда» присутствует в обоих наборах, поэтому он не будет найден в наборе результатов.

DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Wed","Thu","Fri","Sat","Sun"])
AllDays = DaysA - DaysB
print(AllDays)

Когда приведенный выше код выполняется, он дает следующий результат. Обратите внимание, в результате получился только один «брак».

set(['Mon', 'Tue'])

Сравнить наборы

Мы можем проверить, является ли данный набор подмножеством или надмножеством другого набора. Результат - Истина или Ложь в зависимости от элементов, присутствующих в наборах.

DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"])
SubsetRes = DaysA <= DaysB
SupersetRes = DaysB >= DaysA
print(SubsetRes)
print(SupersetRes)

Когда приведенный выше код выполняется, он дает следующий результат.

True
True