В примерах этой главы используются короткие списки чисел, но это делается только для того, что-
бы данные помещались на странице . Примеры также будут работать и в том случае, если список
содержит миллионы чисел .
72 Глава 4 • Работа со
списками
вать тот же список всего в одной строке. Генератор списка объединяет цикл
for
и создание новых элементов в одну строку и автоматически присоединяет к списку
все новые элементы. Учебники не всегда рассказывают о генераторах списка на-
чинающим программистам, но я привожу этот материал, потому что вы с большой
вероятностью встретите эту конструкцию, как только начнете просматривать код
других разработчиков.
В следующем примере список квадратов, знакомый вам по предыдущим примерам,
строится с использованием генератора списка:
squares.py
squares = [value**2 for value in range(1,11)]
print(squares)
Чтобы использовать этот синтаксис, начните с содержательного имени списка,
например
squares
. Затем откройте квадратные скобки и определите выражение
для значений, которые должны быть сохранены в новом списке. В данном приме-
ре это выражение
value**2
, которое возводит значение во вторую степень. Затем
напишите цикл
for
для генерирования чисел, которые должны передаваться вы-
ражению, и закройте квадратные скобки. Цикл
for
в данном примере —
for value
in range(1,11)
— передает значения с 1 до 10 выражению
value**2
. Обратите
внимание на отсутствие двоеточия в конце команды
for
.
Результатом будет уже знакомый вам список квадратов:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
Чтобы успешно писать собственные генераторы списков, необходим определенный
опыт. Тем не менее, как только вы освоитесь с созданием обычных списков, вы
оцените возможности генераторов. Когда после очередного трех-четырехстрочного
блока вам это надоест, подумайте о написании собственных генераторов списков.
Достарыңызбен бөлісу: