Языки программирования

Множества в Python

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

СОЗДАНИЕ МНОЖЕСТВА

a_set = {1}    # создание множества с одним значением
print(a_set)
input()

# выведет: {1}

a_set = {1}
print(type(a_set)) # создание множества реализующиеся как классы
input()

# выведет: 

a_set = {1, 2}   # создание множества с несколькими значениями
print(a_set)
input()

# выведет: {1, 2}

ИЗМЕНЕНИЕ МНОЖЕСТВА

Есть два способа добавить элементы в существующее множество: метод add() и метод update().
# метод add()
a_set = {1, 2}
a_set.add(4)      #(1)
print(a_set)
input() 

# выведет: {1, 2, 4}

a_set = {1, 2}
a_set.add(4) 
print(len(a_set)) #(2)
input() 

# выведет: 3

a_set = {1, 2}
a_set.add(4) 
a_set.add(1)     #(3)
print(a_set)
input()

# выведет: {1, 2, 4}

a_set = {1, 2}
a_set.add(4) 
a_set.add(1)     
print(len(a_set)) #(4)
input()

# выведет: 3
  1. Метод add() принимает один аргумент, который может быть любого типа, и добавляет данное значение в множество.
  2. Теперь множество содержит 3 элемента.
  3. Множества — мешки уникальных значений. Если попытаться добавить значение, которое уже присутствует в множестве, ничего не произойдет. Это не приведет в возникновению ошибки; просто нулевое действие.
  4. Это множество все ещё состоит из 3 элементов.
# метод update()
a_set = {1, 2, 3}
print(a_set)
input()

# выведет: {1, 2, 3}

a_set.update({2, 4, 6})               #(1)
print(a_set)   
input()                               #(2)

# выведет: {1, 2, 3, 4, 6}

a_set.update({3, 6, 9}, {1, 2, 3, 5, 8, 13})  #(3)
print(a_set)
input()

# выведет: {1, 2, 3, 4, 5, 6, 8, 9, 13}

a_set.update([10, 20, 30])                    #(4)
print(a_set)
input()

# выведет: {1, 2, 3, 4, 5, 6, 8, 9, 10, 13, 20, 30}
  1. Метод update() принимает один аргумент — множество, и добавляет все его элементы к исходному множеству.
  2. Повторяющиеся значения игнорируются, поскольку множество не может содержать дубликаты.
  3. Можно вызвать метод update() с любым количеством параметров. Когда он вызывается с двумя множествами, метод update() добавляет все элементы обоих множеств в исходное множество (пропуская повторяющиеся).
  4. Метод update() может принимать объекты различных типов, включая списки. Когда ему передается список, он добавляет все его элементы в исходное множество.

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

Для удаления одного элемента вызывается метод remove(), в который передается удаляемый элемент. Но следует учитывать, что если такого элемента не окажется в множестве, то будет сгенерирована ошибка.
Поэтому перед удалением следует проверять на наличие элемента с помощью оператора in:
users = {"Tom", "Bob", "Alice"}
 
user = "Tom"
if user in users: 
    users.remove(user)
print(users) 
input()

# выведет: {'Alice', 'Bob'}

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

Для перебора элементов можно использовать цикл for.
users = {"Tom","Bob","Alice"}
 
for user in users:
    print(user)
input()

# выведет:
Alice
Tom
Bob

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

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

С помощью метода copy() можно скопировать содержимое одного множества в другую переменную:
users = {"Tom","Bob","Alice"}
users3 = users.copy()
Метод union() объединяет два множества и возвращает новое множество:
users = {"Tom","Bob","Alice"}
users2 = {"Sam","Kate", "Bob"}
 
users3 = users.union(users2)
print(users3)   
input()

# выведет: {"Bob", "Alice", "Sam", "Kate", "Tom"}
Метод intersection() производит операцию пересечения множеств и возвращает новое множество:
users = {"Tom","Bob","Alice"}
users2 = {"Sam","Kate", "Bob"}
 
users3 = users.intersection(users2)
print(users3)  
input()

# выведет: {"Bob"}
Еще одна операция — разность множеств возвращает те элементы, которые есть в первом множестве, но отсутствуют во втором. Для получения разности множеств можно использовать метод difference или операцию вычитания:
users = {"Tom","Bob","Alice"}
users2 = {"Sam","Kate", "Bob"}
 
users3 = users.difference(users2)
print(users3)           # {"Tom", "Alice"}
print(users - users2)   # {"Tom", "Alice"}
input()

frozen set

Тип frozen set является видом множеств, которое не может быть изменено. Для его создания используется функция frozenset:
users = frozenset({"Tom", "Bob", "Alice"})
В функцию frozenset передается набор элементов — список, кортеж, другое множество.

Видео по уроку:
Самоучитель по Python