все Python 3Множества (set)функция
Генераторы множеств (set comprehension)
comprehension
Set comprehension создаёт множество аналогично list comprehension, но с фигурными скобками. Дубли автоматически удаляются.
Синтаксис
{expr for var in iterable [if cond]}
Фигурные скобки делятся со словарями: двоеточие внутри превращает выражение в dict comprehension, а пустое множество литералом не записать — {} это словарь, нужен set(). Порядок элементов в результате не определён, так что для стабильного вывода оборачивайте в sorted(); и каждый вычисленный элемент обязан быть хэшируемым — множество из списков не соберётся.
Примеры
squares = {x**2 for x in range(6)}
print(sorted(squares))
# → [0, 1, 4, 9, 16, 25]
evens = {x for x in range(10) if x % 2 == 0}
print(evens)
# → {0, 2, 4, 6, 8}
words = ['hello', 'world', 'hello', 'python']
unique_len = {len(w) for w in words}
print(unique_len)
# → {5, 6} (уникальные длины)
unique_first = {w[0] for w in words}
print(sorted(unique_first))
# → ['h', 'p', 'w'] (у множества строк порядок не определён, поэтому сортируем)
no_vowels = {c for c in 'hello' if c not in 'aeiou'}
print(sorted(no_vowels))
# → ['h', 'l']
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности