Множества¶
Множество в python - "контейнер", содержащий не повторяющиеся элементы в случайном порядке.
Создание множеств¶
Создаём множества:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
Как видно из примера, множества имеет тот же литерал, что и словарь, но пустое множество с помощью литерала создать нельзя.
Множества удобно использовать для удаления повторяющихся элементов:
1 2 3 | |
С множествами можно выполнять множество операций: находить объединение, пересечение...
len(s)- число элементов в множестве (размер множества).x in s- принадлежит лиxмножествуs.set.isdisjoint(other)- истина, еслиsetиotherне имеют общих элементов.set == other- все элементыsetпринадлежатother, все элементыotherпринадлежатset.set.issubset(other)илиset <= other- все элементыsetпринадлежатother.set.issuperset(other)илиset >= other- аналогично.set.union(other, ...)илиset | other | ...- объединение нескольких множеств.set.intersection(other, ...)илиset & other & ...- пересечение.set.difference(other, ...)илиset - other - ...- множество из всех элементовset, не принадлежащие ни одному изother.set.symmetric_difference(other); set ^ other- множество из элементов, встречающихся в одном множестве, но не встречающиеся в обоих.set.copy()- копия множества.
И операции, непосредственно изменяющие множество:
set.update(other, ...); set |= other | ...- объединение.set.intersection_update(other, ...); set &= other & ...- пересечение.set.difference_update(other, ...); set -= other | ...- вычитание.set.symmetric_difference_update(other); set ^= other- множество из элементов, встречающихся в одном множестве, но не встречающиеся в обоих.set.add(elem)- добавляет элемент в множество.set.remove(elem)- удаляет элемент из множества.KeyError, если такого элемента не существует.set.discard(elem)- удаляет элемент, если он находится в множестве.set.pop()- удаляет первый элемент из множества. Так как множества не упорядочены, нельзя точно сказать, какой элемент будет первым.set.clear()- очистка множества.
frozenset¶
Единственное отличие set от frozenset заключается в том, что set - изменяемый тип данных, а frozenset - нет. Примерно похожая ситуация с списками и кортежами.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |