3
Списки
В этой и следующей главах вы узнаете, что собой представляют списки и как
начать работать с элементами списка. Списки позволяют хранить в одном месте
взаимосвязанные данные, сколько бы их ни было — несколько элементов или
несколько миллионов элементов. Работа со списками относится к числу самых
выдающихся возможностей Python, доступных для начинающего программиста.
Операции со списками связывают воедино многие важные концепции в про-
граммировании.
Что такое список?
Список — это набор элементов, следующих в определенном порядке. Вы можете
создать список для хранения букв алфавита, цифр от 0 до 9 или имен всех членов
вашей семьи. В список можно поместить любую информацию, причем данные
в списке даже не обязаны быть как-то связаны друг с другом. Так как список обыч-
но содержит более одного элемента, рекомендуется присваивать спискам имена
во множественном числе:
letters
,
digits
,
names
и т. д.
В языке Python список обозначается квадратными скобками (
[]
), а отдельные
элементы списка разделяются запятыми. Простой пример списка с названиями
моделей велосипедов:
bicycles.py
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)
Если вы прикажете Python вывести список, то на экране появится перечисление
элементов списка в квадратных скобках:
['trek', 'cannondale', 'redline', 'specialized']
Конечно, вашим пользователям такое представление не подойдет; разберемся, как
обратиться к отдельным элементам в списке.
Обращение
к элементам списка
Списки представляют собой упорядоченные наборы данных, поэтому для обраще-
ния к любому элементу списка следует сообщить Python позицию (
индекс
) нужного
Индексы начинаются с 0, а не с 1
49
элемента. Чтобы обратиться к элементу в списке, укажите имя списка, за которым
следует индекс элемента в квадратных скобках.
Например, название первого велосипеда в списке
bicycles
выводится следующим
образом:
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0])
Синтаксис обращения к элементу показан в точке
. Когда мы запрашиваем один
элемент из списка, Python возвращает только этот элемент без квадратных скобок
или кавычек:
trek
Именно такой результат должны увидеть пользователи — чистый, аккуратно от-
форматированный вывод.
Также можно использовать строковые методы из главы 2 с любым элементом
списка. Например, элемент
'trek'
можно более аккуратно отформатировать
при
помощи метода
title()
:
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0].title())
Этот пример выдает такой же результат, как и предыдущий, только название
'Trek'
выводится с прописной буквы.
Индексы начинаются с 0, а не с 1
Python считает, что первый элемент списка находится в позиции 0, а не в позиции 1.
Этот принцип встречается в большинстве языков программирования и объясняется
особенностями низкоуровневой реализации операций со списками. Если вы полу-
чаете неожиданные результаты, определите, не допустили ли вы простую ошибку
«смещения на 1».
Второму элементу списка соответствует индекс 1. В этой простой схеме индекс
любого элемента вычисляется уменьшением на 1 его позиции в списке. Напри-
мер, чтобы обратиться к четвертому элементу списка, следует запросить элемент
с индексом 3.
В следующем примере выводятся названия велосипедов с индексами 1 и 3:
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[1])
print(bicycles[3])
При этом выводится второй и четвертый элементы списка:
cannondale
specialized
В Python также существует специальный синтаксис для обращения к последнему
элементу списка. Если запросить элемент с индексом –1, Python всегда возвращает
последний элемент в списке: