{}
вместо квадратных []
. Он позволяет создать множество (set) итерируя по последовательности и применяя выражение к каждому элементу.
my_set = {x**2 for x in range(5) if x % 2 == 0}
. Этот код создаст множество, содержащее квадраты четных чисел от 0 до 4.
Генератор множеств (set comprehension) - это компактный способ создания множеств в Python, используя синтаксис, похожий на генераторы списков.
Основной синтаксис:
{expression for item in iterable if condition}
Где:
expression
: Выражение, которое определяет значение элемента, включаемого в множество.item
: Переменная, принимающая значения из iterable
.iterable
: Итерируемый объект (например, список, кортеж, строка, range), из которого берутся элементы.condition
(опционально): Условие, которое определяет, будет ли элемент включен в множество. Если условие истинно для текущего item
, то expression
вычисляется и добавляется в множество.Примеры:
1. Создание множества квадратов чисел от 0 до 9:
squares = {x**2 for x in range(10)}
print(squares) # Вывод: {0, 1, 4, 9, 16, 25, 36, 49, 64, 81}
2. Создание множества четных чисел из списка:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = {x for x in numbers if x % 2 == 0}
print(even_numbers) # Вывод: {2, 4, 6, 8, 10}
3. Создание множества уникальных символов из строки:
text = "hello world"
unique_chars = {char for char in text}
print(unique_chars) # Вывод: {'d', ' ', 'h', 'o', 'r', 'e', 'w', 'l'}
Обратите внимание, что пробел тоже учитывается, и множество содержит только уникальные символы.
Когда использовать генераторы множеств:
Преимущества генераторов множеств:
Генераторы множеств - мощный и удобный инструмент для работы с множествами в Python, который позволяет эффективно создавать и манипулировать данными.