======sets (множества)======
Множества — неупорядоченные наборы уникальных объектов, поддерживающих хеширование.
Множества могут быть изменяемыми и неизменяемыми. Размерность и состав созданного однажды неизменяемого множества не может меняться, вместо этого обычно создаётся новое множество.
Множества обычно используются для проверки вхождения элемента, устранения из последовательности дубликатов, и таких математических операций как: пересечение, объединение, разница и симметичная разница.
Множества не упорядочены, они не хранят ни позицию элемента, ни порядок вставки. Поэтому наборы не поддерживают ни обращение к элементам по индексам, ни срезы, ни какое-либо другое поведение, присущее [[python:списки:списки|последовательностям]].
В двоичных операций, где участуют сразу и множество и статичное множество, результатом будет тип первого операнда. Например, в my = frozenset('ab') | set('bc') my будет статичным множеством.
====Инициалзация множества====
s = {'apple', 'orange', 'pear', 'banana'}
print(s, type(s)) # {'pear', 'apple', 'banana', 'orange'}
s = set('apple')
print(s) # {'a', 'l', 'e', 'p'} - Выкидывает повторяющиеся объекты
==числа при формирования множества==
числа при формирования множества сортируются по возростанию
s = {i for i in range(1, 10)}
print(s) # {1, 2, 3, 4, 5, 6, 7, 8, 9}
==Пустое множество==
s = {}
print(s, type(s)) #{} , создается не множество а словарь
s = set()# Правильно использовать конструктор set
print(s, type(s)) # set()
====Проход по элементам====
Проход по элементам последовательности производится при помощи for in:
for item in {1, 2, 'some'}:
print(item)
====Количество элементов====
Количество элементов в последовательности можно получить, используя функцию len().
len({1, 2, 'some'}) # 3
====Сравнение====
Два множества **равны** тогда и только тогда, когда каждый из элементов множества содержится во втором (когда каждое из множест является подмножеством другого).
Одно множество **меньше** другого тогда и только тогда, если первое является правильным подмножеством последнего (является подмножеством, но не равно).
Одно множество **больше** другого тогда и только тогда, когда первое является правильным надмножеством последнего (является надмножеством, но не равно).
Два любых непустых непересекающихся множества не являются равными и не являются подмножествами друг для друга, поэтому следующию сравнения вернут False: a == b, a > b, a < b. Множества не реализуют метод __cmp__().
Ввиду того, что множества реализуют частичное упорядочивание (отношения подмножеств), результат метода list.sort() для списка множеств не определён.