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

phonetic-set = { 'Alpha' , 'Bravo' , 'Charlie' }

Нельзя обратиться к отдельному элементу множества, используя имя множества и квадратные скобки, содержащие индекс. Вместо этого у множеств существуют методы для работы с ними.

Метод множества

Описание

set.add(x)

Добавляет элемент  х в множество

set.update(x,y,z)

Добавляет несколько элементов в множество

set.copy()

Возвращает копию множества

set.pop()

Удаляет один элемент из множества случайным образом

set.discard( i )

Удаляет из множества элемент i

set1.intersection(set2)

Возвращает элементы, принадлежащие обоим множествам

set1.difference(set2)

Возвращает элемента из множества  set1 , которых нет в set2

pt = { 9 , 4 , 3 }
print(pt) #{9, 3, 4}
pt.add(777)
print(pt) #{9, 3, 4, 777}
pt2 = {33,66,22}
pt.update(pt2)
print(pt) #{33, 66, 3, 4, 777, 22, 9}
pt.pop()
print(pt) #{66, 3, 4, 777, 22, 9}
pt.discard(66)
print(pt) #{3, 4, 777, 22, 9}
print(pt.intersection(pt2)) #{22}
print(pt.difference(pt2)) #{777, 3, 4, 9}​

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

numbersList = [ 1, 5, 33, -1, 2 ]
animalsTuple = ( 'волк' , 'лиса' , 'лось' )
colorsSet = {'красный', 'белый', 'зеленый'}
print( 'Список:' , numbersList , 'Длина:' , len( numbersList ) )
#Список: [1, 5, 33, -1, 2] Длина: 5
print( type( numbersList ) )
#<class 'list'>
print( 'Кортеж:' , animalsTuple , 'Длина:' , len( animalsTuple ) )
#Кортеж: ('волк', 'лиса', 'лось') Длина: 3
print( type( animalsTuple ) )
#<class 'tuple'>
print( 'Множество:' , colorsSet , 'Длина:' , len( colorsSet ) )
#Множество: {'белый', 'зеленый', 'красный'} Длина: 3
print( type( colorsSet ) )
#<class 'set'>
#Добавляем элемент в множество colorsSet
colorsSet.add('ЧЕРНЫЙ')
print( 'Множество:' , colorsSet , 'Длина:' , len( colorsSet ) )
#Множество: {'белый', 'зеленый', 'ЧЕРНЫЙ', 'красный'} Длина: 4

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

a = set([1, 4, 6, 7])
print(a) #{1, 4, 6, 7}
a.add(5)
print(a) #{1, 4, 5, 6, 7}

frozenset

Единственное отличие set от frozenset заключается в том, что set - изменяемый тип данных, а frozenset - нет.

*Листинг 21*

a = frozenset([1, 4, 6, 7])
b = set([1, 4, 6, 7])
print(type(a)) #<class 'frozenset'>
b.add(5); print(b)
#a.add(5) #AttributeError: 'frozenset' object has no attribute 'add'