Освой Python играючи
/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000
Множество (класс set) - это контейнер, который содержит уникальные не повторяющиеся элементы в случайном порядке.
Для множеств используются фигурные скобки, как у словарей.
mySet = {'c', 'a', 't'}
# выводится в любом случайном порядке
print(mySet) # {'t', 'c', 'a'}
Множество удобно использовать для удаления повторяющихся элементов. Создадим список с элементами, которые повторяются по несколько раз и сконвертируем его во множество. На этот раз множество создадим через метод set().
words = ['a', 'a', 'b', 'b', 'c', 'd', 'e']
mySet = set(words)
print(str(mySet))
У множеств можно находить объединение или пересечение элементов.
Число элементов вычисляется через len().
Другие методы: 'clear' (очистка множества), 'copy', 'pop' (удаляет первый элемент из множества. Так как множества не упорядочены, нельзя точно сказать, какой элемент будет первым), 'remove', 'update', '__bases__', '__contains__', 'add', 'difference', 'difference_update', 'discard', 'intersection' (пересечение), 'intersection_update', 'isdisjoint' (истина, если set и other не имеют общих элементов), 'issubset', 'issuperset', 'symmetric_difference', 'symmetric_difference_update', 'union' (объединение нескольких множеств).
frozenset - это неизменяемое множество.
Методы: '__name__', 'copy', '__bases__', '__contains__', 'difference', 'intersection', 'isdisjoint', 'issubset', 'issuperset', 'symmetric_difference', 'union'.
Создадим два разных типа множества, сравним их и попытаемся добавить новые элементы.
setCat = set('кот')
frozenCat = frozenset('кот')
print(setCat == frozenCat)
print(type(setCat)) # set
print(type(frozenCat)) #frozenset
setCat.add('э') # можем добавить
print(setCat)
frozenCat.add('e') # эта строка вызовет ошибку при компиляции