Общие элементы множества python

Общие элементы множества python

Множество (set) представляют еще один вид набора, который хранит только уникальные элементы. Для определения множества используются фигурные скобки, в которых перечисляются элементы:

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

Также для определения множества может применяться функция set() , в которую передается список или кортеж элементов:

people = [«Mike», «Bill», «Ted»] users = set(people) print(users) #

Функцию set удобно применять для создания пустого множества:

Для получения длины множества применяется встроенная функция len() :

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

Для добавления одиночного элемента вызывается метод add() :

users = set() users.add("Sam") print(users)

Удаление элементов

Для удаления одного элемента вызывается метод remove() , в который передается удаляемый элемент. Но следует учитывать, что если такого элемента не окажется в множестве, то будет сгенерирована ошибка. Поэтому перед удалением следует проверять на наличие элемента с помощью оператора in :

users = user = «Tom» if user in users: users.remove(user) print(users) #

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

users = users.discard(«Tim») # элемент «Tim» отсутствует, и метод ничего не делает print(users) # users.discard(«Tom») # элемент «Tom» есть, и метод удаляет элемент print(users) #

Для удаления всех элементов вызывается метод clear() :

Перебор множества

Для перебора элементов можно использовать цикл for:

users = for user in users: print(user)

При переборе каждый элемент помещается в переменную user.

Операции с множествами

С помощью метода copy() можно скопировать содержимое одного множества в другую переменную:

users = students = users.copy() print(students) #

Объединение множеств

Метод union() объединяет два множества и возвращает новое множество:

users = users2 = users3 = users.union(users2) print(users3) #

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

Пересечение множеств позволяет получить только те элементы, которые есть одновременно в обоих множествах. Метод intersection() производит операцию пересечения множеств и возвращает новое множество:

users = users2 = users3 = users.intersection(users2) print(users3) #

Вместо метода intersection мы могли бы использовать операцию логического умножения:

users = users2 = print(users & users2) #

В этом случае мы получили бы тот же результат.

Модификация метода — intersection_update() заменяет пересеченными элементами первое множество:

users = users2 = users.intersection_update(users2) print(users) #

Разность множеств

Еще одна операция — разность множеств возвращает те элементы, которые есть в первом множестве, но отсутствуют во втором. Для получения разности множеств можно использовать метод difference или операцию вычитания:

users = users2 = users3 = users.difference(users2) print(users3) # print(users — users2) #

Отдельная разновидность разности множеств — симметрическая разность производится с помощью метода symmetric_difference() или с помощью операции ^ . Она возвращает все элементы обоих множеств за исключением общих:

users = users2 = users3 = users.symmetric_difference(users2) print(users3) # users4 = users ^ users2 print(users4) #

Отношения между множествами

Метод issubset позволяет выяснить, является ли текущее множество подмножеством (то есть частью) другого множества:

users = superusers = print(users.issubset(superusers)) # True print(superusers.issubset(users)) # False

Метод issuperset , наоборот, возвращает True, если текущее множество является надмножеством (то есть содержит) для другого множества:

users = superusers = print(users.issuperset(superusers)) # False print(superusers.issuperset(users)) # True

frozen set

Тип frozen set является видом множеств, которое не может быть изменено. Для его создания используется функция frozenset :

В функцию frozenset передается набор элементов — список, кортеж, другое множество.

В такое множество мы не можем добавить новые элементы, как и удалить из него уже имеющиеся. Собственно поэтому frozen set поддерживает ограниченный набор операций:

  • len(s) : возвращает длину множества
  • x in s : возвращает True, если элемент x присутствует в множестве s
  • x not in s : возвращает True, если элемент x отсутствует в множестве s
  • s.issubset(t) : возвращает True, если t содержит множество s
  • s.issuperset(t) : возвращает True, если t содержится в множестве s
  • s.union(t) : возвращает объединение множеств s и t
  • s.intersection(t) : возвращает пересечение множеств s и t
  • s.difference(t) : возвращает разность множеств s и t
  • s.copy() : возвращает копию множества s

Источник

Читайте также:  Python script error exit status
Оцените статью