Книга «Изучаем Python»



Pdf көрінісі
бет47/238
Дата07.01.2022
өлшемі7,86 Mb.
#18670
түріКнига
1   ...   43   44   45   46   47   48   49   50   ...   238
Байланысты:
2 5343781172763690906

ПРИМЕЧАНИЕ

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

бы данные помещались на странице . Примеры также будут работать и в том случае, если список 

содержит миллионы чисел .

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

Описанный выше способ генерирования списка 

squares

 состоял из трех или 

четырех строк кода. Генератор списка (list comprehension) позволяет сгенериро-



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]

Чтобы успешно писать собственные генераторы списков, необходим определенный 

опыт. Тем не менее, как только вы освоитесь с созданием обычных списков, вы 

оцените возможности генераторов. Когда после очередного трех-четырехстрочного 

блока вам это надоест, подумайте о написании собственных генераторов списков.



Достарыңызбен бөлісу:
1   ...   43   44   45   46   47   48   49   50   ...   238




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет