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