even_numbers.py
even_numbers = list(range(2,11,2))
print(even_numbers)
Создание числовых списков
73
В этом примере функция
range()
начинает со значения 2, а затем увеличива-
ет его на 2. Приращение 2 последовательно применяется до тех пор, пока не
будет достигнуто или пройдено конечное значение 11, после чего выводится
результат:
[2, 4, 6, 8, 10]
С помощью функции
range()
можно создать практически любой диапазон чисел.
Например, как бы вы создали список квадратов всех целых чисел от 1 до 10? В язы-
ке Python операция возведения в степень обозначается двумя звездочками (
**
).
Один из возможных вариантов выглядит так:
squares.py
❶
squares = []
❷
for value in range(1,11):
❸
square = value**2
❹
squares.append(square)
❺
print(squares)
Сначала в точке
создается пустой список с именем
squares
. В точке
вы при-
казываете Python перебрать все значения от 1 до 10 при помощи функции
range()
.
В цикле текущее значение возводится во вторую степень, а результат сохраняется
в переменной
square
в точке
. В точке
каждое новое значение
square
присо-
единяется к списку
squares
. Наконец, после завершения цикла список квадратов
выводится в точке
:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
Чтобы сделать код более компактным, можно опустить временную переменную
square
и присоединять каждое новое значение прямо к списку:
squares = []
for value in range(1,11):
❶
squares.append(value**2)
print(squares)
Конструкция
выполняет ту же работу, что и строки
и
в
squares .py
. Каждое
значение в цикле возводится во вторую степень, а затем немедленно присоединя-
ется к списку квадратов.
При создании более сложных списков можно использовать любой из двух под-
ходов. Иногда использование временной переменной упрощает чтение кода;
в других случаях оно приводит лишь к напрасному удлинению кода. Сначала
сосредоточьтесь на написании четкого и понятного кода, который делает именно
то, что нужно, и только потом переходите к анализу кода и поиску более эффек-
тивных решений.
|