Генераторы

Обновлено: 2024-03-12
2 мин

В языке Python есть несколько методов создания списков и словарей, которые известны как генераторы.

Генераторы списков

Генератор списка - это выражение, которое генерирует список значений на основе каких-то правил. Вместо того, чтобы создавать список целиком и хранить его в памяти, генератор списка генерирует значения по мере их запроса.

squares = [x*x for x in range(10)]

Эта строка создает генератор списка, который генерирует квадраты чисел от 0 до 9. Затем можно перебрать элементы этого генератора с помощью цикла:

В Python есть функция range, которая может возвращать список чисел. По умолчанию она возвращает целые числа, начиная с 0 и заканчивая числом, которое вы ей передали, но не включая его. В данном случае она возвращает список, содержащий целые числа 0-9.

for square in squares:
    print(square)

Генераторы словарей

Генератор словаря работает аналогично генератору списка, но вместо списка мы создаем словарь с помощью фигурных скобок и пары “ключ: значение”.

my_dict = {x: x**2 for x in range(5)}
print(my_dict)
# Вывод: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

Генератор множеств

Генератор множества используется аналогично генератору списка, но вместо списка мы создаем множество с помощью фигурных скобок.

my_set = {x**2 for x in range(5)}
print(my_set)
# Вывод: {0, 1, 4, 9, 16}

Здесь мы создаем множество my_set с элементами, равными квадратам чисел от 0 до 4.

Ресурсы: