В Python для хранения уникальной коллекции элементов используется тип данных Set. Он ведет себя подобно математическому множеству: в нем не может быть дубликатов, и вы можете проводить с ним операции, такие как объединение, пересечение, разность и симметричная разность.
Создать set в Python можно используя либо конструктор set()
, либо фигурные скобки {}
.
Например:
numbers = set([1, 2, 3, 4])
nums = {5, 6, 7, 8}
print(type(numbers)) # <class 'set'>
print(type(nums)) # <class 'set'>
При попытке добавить дублированный элемент в set, Python просто его игнорирует.
nums = {1, 2, 2, 3, 4, 4}
print(nums) # {1, 2, 3, 4}
Set-ы хорошо подходят для удаления дубликатов из списка, проверки того, встречается ли элемент в коллекции, и вычисления математических операций, таких как пересечение, объединение, разность и т.д.
# удаление дубликатов
list_with_dupes = [1, 2, 2, 3, 4, 4]
unique_list = list(set(list_with_dupes))
print(unique_list) # [1, 2, 3, 4]
# математические операции
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
print(set1.intersection(set2)) # {3, 4}
print(set1.union(set2)) # {1, 2, 3, 4, 5, 6}
Важно отметить, что Set в Python - это неупорядоченная коллекция, поэтому порядок элементов может меняться.
В отличие от других более простых структур данных (например, List и Tuple), Set позволяет провести проверку принадлежности элемента множеству за константное время. С другой стороны, для работы со списками и кортежами в Python предоставляется более обширный набор доступных методов и функций.
Таким образом, тип данных Set в Python идеально подходит в ситуациях, когда вам требуется гарантировать уникальность элементов и осуществлять эффективный поиск в коллекции.