Python Glossary English

все Python 3Множества (set)понятие

Практические задачи с множествами

практика

Типичное применение: уникальные элементы, пересечения, разности, быстрая проверка принадлежности.

Синтаксис

set(lst)  |  a & b  |  a - b  |  a ^ b

Множество выбрасывает порядок вместе с дубликатами: если нужны уникальные значения в исходном порядке, берите list(dict.fromkeys(lst)), а не set(). Главная выгода — проверка x in s за константное время против линейного перебора списка, поэтому перед серией проверок принадлежности список стоит один раз превратить в множество. И учтите: внутрь попадут только хешируемые объекты, список или словарь туда не положить.

Примеры

lst = [1, 2, 2, 3, 3, 3, 4]
unique = sorted(set(lst))
print(unique)
# → [1, 2, 3, 4]
a = [1, 2, 3, 4]
b = [3, 4, 5, 6]
common = set(a) & set(b)
print(common)
# → {3, 4}
only_a = set(a) - set(b)
print(only_a)
# → {1, 2}
print(len(set(lst)))
# → 4 (число уникальных)
has_dup = len(lst) != len(set(lst))
print(has_dup)
# → True (есть дубликаты)
tags1 = {'python', 'data', 'ml'}
tags2 = {'java', 'data', 'web'}
print(sorted(tags1.symmetric_difference(tags2)))
# → ['java', 'ml', 'python', 'web'] (у множества строк порядок не определён, поэтому сортируем)

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности