Наборы
Python оснащен несколькими встроенными типами данных, которые помогают нам организовать наши данные. Эти структуры включают списки (lists), словари (dictionaries), кортежи (tuples) и наборы (sets).
Читать
Инициализация набора¶
Существует два способа создания наборов: с помощью фигурных скобок {}
и встроенной функции set()
{}
, иначе вместо этого вы получите пустой словарь.
>>> s = {1, 2, 3}
>>> s = set([1, 2, 3])
>>> s = {} # this will create a dictionary instead of a set
>>> type(s)
# <class 'dict'>
Неупорядоченные наборы уникальных элементов¶
Набор автоматически удаляет все повторяющиеся значения.
И как неупорядоченный тип данных, они не могут быть проиндексированы.
>>> s = {1, 2, 3}
>>> s[0]
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# TypeError: 'set' object does not support indexing
установить add() и update()¶
Используя метод add()
, мы можем добавить один элемент в набор.
И с update()
, несколько::
установить remove() и discard()¶
Оба метода удалят элемент из набора, но remove()
вызовет ключевую ошибку key error
, если значение не существует.
>>> s = {1, 2, 3}
>>> s.remove(3)
>>> s
# {1, 2}
>>> s.remove(3)
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# KeyError: 3
discard()
не вызовет никаких ошибок.
установить union()¶
union()
или |
создаст новый набор со всеми элементами из предоставленных наборов.
установить пересечение¶
intersection
или &
вернет набор только с элементами, которые являются общими для всех из них.
>>> s1 = {1, 2, 3}
>>> s2 = {2, 3, 4}
>>> s3 = {3, 4, 5}
>>> s1.intersection(s2, s3) # or 's1 & s2 & s3'
# {3}
установить разницу¶
difference
или -
вернет только те элементы, которые уникальны для первого набора (вызванного набора).
>>> s1 = {1, 2, 3}
>>> s2 = {2, 3, 4}
>>> s1.difference(s2) # or 's1 - s2'
# {1}
>>> s2.difference(s1) # or 's2 - s1'
# {4}
установить symetric_difference¶
symetric_difference
или ^
вернет все элементы, которые не являются общими между ними.