Теперь используем функцию zip(), чтобы объединить эти кортежи в пару. Зна-
чение, возвращаемое функцией zip(), само по себе не является списком или кор-
тежем, но его можно преобразовать в любую из этих последовательностей:
>>> list(zip(english, french))
[('Monday', 'Lundi'), ('Tuesday', 'Mardi'), ('Wednesday', 'Mercredi')]
Передайте результат работы функции zip() непосредственно функции dict() —
и у нас готов небольшой англо-французский словарь!
>>> dict(zip(english, french))
{'Monday': 'Lundi', 'Tuesday': 'Mardi', 'Wednesday': 'Mercredi'}
Генерирование числовых последовательностей
с помощью функции range()
Функция range() возвращает поток чисел в заданном диапазоне без необходимо-
сти создавать и сохранять крупную структуру данных вроде списка или кортежа.
Это позволяет вам создавать большие диапазоны, не использовав всю память ком-
пьютера и не обрушив программу.
Вы можете применять функцию range() аналогично slice(): range(start, stop,
step). Если опустите значение start, диапазон начнется с 0. Необходимым явля-
ется лишь значение stop: как и в случае со slice(), оно определяет последнее зна-
чение, которое будет создано прямо перед остановкой функции. Значение по умол-
чанию step равно 1, но вы можете изменить его на -1.
Как и zip(), функция range() возвращает итерабельный объект, поэтому вам
нужно пройти по значениям с помощью конструкции for … in или преобразовать
объект в последовательность вроде списка. Создадим диапазон 0, 1, 2:
>>> for x in range(0,3):
... print(x)
...
0
1
2
>>> list(range(0, 3))
[0, 1, 2]
Вот так можно создать диапазон от 2 до 0:
>>> for x in range(2, -1, -1):
... print(x)
Включения
113
...
2
1
0
>>> list(range(2, -1, -1))
[2, 1, 0]
В следующем фрагменте кода используется шаг 2, чтобы получить все четные
числа от 0 до 10:
>>> list(range(0, 11, 2))
[0, 2, 4, 6, 8, 10]
Прочие итераторы
В главе 8 рассматривается итерирование по файлам. В главе 6 вы сможете увидеть,
как использовать итерирование для объектов, которые сами определили.