введение в итераторы

Не секрет, что итерация, то есть повторение вычислительного процесса -- цикл -- является одним из фундаментальных блоков, из которых строятся императивные программы. В языке Python итерации можно производить с использованием циклов ДЛЯ (for), ПОКА (while), а также в списковых включениях -- новом методе описания списков, появившемся в Python 2.x.

 

Иттерация

В языке Python итерация часто производится с использованием некоторого параметра, который пробегает все значения из некоторой последовательности или, в более общем случае -- итерабельного (способного к итерации) объекта. Именно так происходит при использовании оператора for или спискового включения. Следующий пример иллюстрирует итерацию по символам строки:

for c in "example":

    print c

Здесь c является параметром цикла.

В следующем примере итерация производится по последовательности целых чисел от 1 до 10. Для порождения такой последовательности в Python имеется специальная встроенная функция range():

s = 0

for i in range(1, 11):

    s = s + i**2

print c

Конечно, с помощью range() использовать большие последовательности неудобно: они занимают много памяти, поэтому в Python имеется функция xrange(), которая в описании цикла for ведет себя также, как и range(), но реального списка не создает. Аналогично можно рассмотреть методы readlines() и xreadlines() файлового объекта. В первом случае из файла читаются все строки и записываются в память в виде списка строк, а во втором строки читаются из файла по мере необходимости. Следующий пример показывает применение функции xreadlines():

f = open("file.txt")

for l in f.xreadlines():

    print len(l)