- Часть I. Вводное руководство
- Глава 2. Использование интерпретатора
- 2.2. Интерпретатор и его среда
- 4.2. Инструкция for
4.2. Инструкция for
Инструкция for в языке Python немного отличается от того, что используется в таких языках как C или Pascal. Вместо того, чтобы всегда перебирать числа арифметической прогрессии (как в Pascal), или предоставлять пользователю полную свободу выбора итератора и условия выхода из цикла (как в С), перебирает элементы произвольной1 последовательности (например, списка или строки) в порядке их следования:
>>> # Измерение нескольких строк:
... a = ['кот', 'окно', 'выбросить']
>>> for x in a:
... print x, len(x)
...
кот 3
окно 4
выбросить 9
Небезопасно изменять в цикле итерируемую последовательность (такое возможно только для последовательностей, допускающих изменение, например, списков). Если Вы собираетесь вносить изменения в список, элементы которого перебираете, например продублировать избранные элементы, следует перебирать элементы копии исходного списка. Запись в виде среза делает это особенно удобным:
>>> for x in a[:]: # сделать копию (среза) всего списка
... if len(x) > 4: a.insert(0, x)
...
>>> for x in a:
... print x,
...
выбросить кот окно выбросить
Используя средства функционального программирования (см. раздел 5.2), можно одновременно перебирать элементы нескольких последовательностей.
- С формальной точки зрения это не совсем так: в языке Python под последовательностью всегда подра-зумевается последовательность с произвольным доступом; средства для работы с последовательностями.