Множества¶
Множество в 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 |
|