Учебники

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'])

Союз Сетов

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

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

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

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

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

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

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

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

set(['Wed'])
 

Разница множеств

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

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

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

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

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

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


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

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