Используйте list(x * x for x in range(1, 100, 2)). range выдаст нечётные числа от 1 до 99, а генератор вычислит их квадраты.
Получение списка квадратов нечётных чисел от 1 до 99 с помощью генератора
Используйте list(x * x for x in range(1, 100, 2)). range выдаст нечётные числа от 1 до 99, а генератор вычислит их квадраты.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Сформируйте список, в котором находятся квадраты всех нечётных чисел в диапазоне от 1 до 99 включительно, используя генераторное выражение.
Ответ
Используйте list(x * x for x in range(1, 100, 2)). range выдаст нечётные числа от 1 до 99, а генератор вычислит их квадраты.
squares = list(x * x for x in range(1, 100, 2))
В результате 50 элементов: первый равен 1, последний — 9801. Правая граница 100 не включается, а шаг 2 исключает чётные числа без дополнительного условия.
Генераторное выражение само по себе ленивое, но list(...) потребляет его полностью, поскольку по условию нужен список. Более привычная запись [x * x for x in range(1, 100, 2)] создаёт такой же результат через list comprehension. Обе версии требуют памяти для всех готовых значений.