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 . Одна из важных областей применения кортежей — использование в качестве ключей в словарях. Также кортежи более эффективно работают в тех ситуациях, в которых изменяемость не нужна.