Python. Экспресс-курс | страница 40
>>> x = ["first", "second", "third", "fourth"]
>>> x[0]
'first' >
>>> x[2]
'third'
>>> x[-1]
'fourth'
>>> x[-2] >
'third'
>>> x[1:-1]
['second', 'third']
>>> x[0:3]
['first', 'second', 'third'] >
>>> x[-2:-1]
['third']
>>> x[:3]
['first', 'second', 'third']
>>> x[-2:] >
['third', 'fourth']
Индексирование от начала списка использует положительные значения (0 со-ответствует первому элементу). Индексирование от конца списка использует отрицательные индексы (–1 соответствует последнему элементу). Сегмент созда-ется записью вида [m:n] , где m — индекс начального элемента (включительно), а n — индекс конечного элемента (не включая его) (табл. 3.1). Сегмент [:n] на-чинается от начала списка, а сегмент [m:] продолжается до конца списка. Таблица 3.1. Индексы в списках
Эта форма записи может использоваться для добавления, удаления и замены эле-ментов списка, а также для получения отдельных элементов или новых списков, которые представляют собой сегменты существующих списков: >>> x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x[1] = "two"
>>> x[8:9] = []
>>> x
[1, 'two', 3, 4, 5, 6, 7, 8]
>>> x[5:7] = [6.0, 6.5, 7.0]
[1, 'two', 3, 4, 5, 6.0, 6.5, 7.0, 8]
>>> x[5:]
[6.0, 6.5, 7.0, 8]
Если новый сегмент больше или меньше заменяемого , то размер списка увели-чивается или уменьшается.
Также для работы со списками используются некоторые встроенные функции ( len , max и min ), некоторые операторы ( in , + и * ), команда del и методы списков ( append , count , extend , index , insert , pop , remove , reverse и sort ): >>> x = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> len(x)
9
>>> [-1, 0] + x
[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x.reverse()
>>> x
[9, 8, 7, 6, 5, 4, 3, 2, 1]
Каждый из операторов + и * создает новый список, оставляя исходный список без изменений . Для вызова методов списка используется синтаксис атрибутов, при-меняемый к самому списку: x.метод(аргументы) .
Некоторые из этих операций повторяют функциональность, которая может быть реализована в синтаксисе сегментов, но при этом код становится более понятным.
3.2.3. Кортежи
Кортежи (tuples) похожи на списки, но они являются неизменяемыми — другими словами, эти объекты невозможно изменить после создания. Операторы ( in , + и * ) и встроенные функции ( len , max и min ) работают с кортежами так же, как со списка-ми, потому что они не изменяют оригинал. Индексы и синтаксис сегментов работают аналогично для получения элементов или сегментов, но не могут использоваться для добавления, удаления или замены элементов. У кортежей всего два метода: count и index . Одна из важных областей применения кортежей — использование в качестве ключей в словарях. Также кортежи более эффективно работают в тех ситуациях, в которых изменяемость не нужна.