Итоги
61
Итоги
В этой главе вы узнали, что представляют собой списки и как работать с отдельны-
ми элементами в списках. Вы научились определять списки, добавлять и удалять
элементы, выполнять сортировку (постоянную или временную для отображения).
Также вы узнали, как определить длину списка и как избежать ошибок индекси-
рования при работе со списком.
В главе 4 рассматриваются приемы более эффективной работы со списками. Пере-
бор всех элементов списка всего в нескольких строках кода, даже если список со-
держит
тысячи или миллионы элементов, сокращает объем программы.
4
Работа со списками
В главе 3 вы научились создавать простые списки и работать с отдельными элемен-
тами списков. В этой главе вы узнаете, как перебрать весь список всего в несколь-
ких строках кода (независимо от длины списка). Механизм перебора позволяет
выполнить одно действие или набор действий с каждым элементом в списке. С его
помощью вы сможете эффективно работать со списками любой длины, даже со-
стоящими из тысяч и миллионов элементов.
Перебор
всего списка
Типичная задача из области программирования — перебрать все элементы списка
и выполнить с каждым элементом одну и ту же операцию. Например, в компью-
терной игре все экранные объекты могут смещаться на одинаковую величину,
или в списке чисел к каждому элементу может применяться одна и та же стати-
стическая операция. А может быть, вам нужно вывести все заголовки из списка
статей на сайте. В ситуациях, требующих применения одного действия к каждому
элементу списка, можно
воспользоваться циклами
for
.
Допустим, имеется список с именами фокусников, и вы хотите вывести каждое
имя из списка. Конечно, можно обратиться к каждому элементу по отдельности,
но такой подход создает ряд проблем. Во-первых, для очень длинных списков все
сведется к однообразным повторениям. Во-вторых, при любом изменении длины
списка в программу придется вносить изменения. Цикл
for
решает обе проблемы:
Python будет следить за всеми техническими деталями в своей внутренней реали-
зации.
В
следующем примере цикл
for
используется для вывода имен фокусников:
magicians.py
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
print(magician)
Все начинается с определения списка
, как и в главе 3. В точке
определяется
цикл
for
. Эта строка приказывает Python взять очередное имя из списка и сохра-
нить его в переменной
magician
. В точке
выводится имя, только что сохранен-
ное в переменной
magician
. Затем строки
и
повторяются для каждого имени
Перебор всего списка
63
в списке. Этот код можно описать так: «Для каждого фокусника в списке вывести
его имя». Результат представляет собой простой перечень имен из списка:
alice
david
carolina
Подробнее
о циклах
Концепция циклов очень важна, потому что она представляет один из основных
способов автоматизации повторяющихся задач компьютером. Например, в простом
цикле, использованном в
magicians .py
, Python сначала читает первую строку цикла:
for magician in magicians:
Эта строка означает, что нужно взять первое значение из списка
magicians
и со-
хранить его в переменной
magician
. Первое значение в списке —
'alice'
. Затем
Python читает следующую строку:
print(magician)
Python выводит текущее значение
magician
, которое все еще равно
'alice'
. Так
как в списке еще остались другие значения, Python возвращается к первой строке
цикла:
for magician in magicians:
Python берет следующее значение из списка —
'david'
— и сохраняет его в
magician
.
Затем выполняется строка:
print(magician)
Python снова выводит текущее значение
magician
; теперь это строка
'david'
. Весь
цикл повторяется еще раз с последним значением в списке,
'carolina'
. Так как
других значений в списке не осталось, Python переходит к следующей строке в про-
грамме. В данном случае после цикла
for
ничего нет, поэтому программа просто
завершается.
Помните, что все действия повторяются по одному разу для каждого элемента
в списке независимо от их количества. Если список содержит миллион элементов,
Python повторит эти действия миллион раз — обычно это происходит очень быстро.
Также помните, что при написании собственных циклов
for
временной переменной
для текущего значения из списка можно присвоить любое имя. Однако на практи-
ке рекомендуется выбирать осмысленное имя, описывающее отдельный элемент
списка. Несколько примеров:
for cat in cats:
for dog in dogs:
for item in list_of_items:
Выполнение этого правила поможет вам проследить за тем, какие действия выпол-
няются с каждым элементом в цикле
for
. В зависимости от того, какое число ис-