введение в итераторы
Не секрет, что итерация, то есть повторение вычислительного процесса -- цикл -- является одним из фундаментальных блоков, из которых строятся императивные программы. В языке 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)