Язык программирования Python (Сузи) - страница 10

СинтаксисСемантика
>len(s)Длина последовательности >s
>x in sПроверка принадлежности элемента последовательности. В новых версиях Python можно проверять принадлежность подстроки строке. Возвращает >True или >False
>x not in s>= not x in s
>s + s1Конкатенация последовательностей
>s*n или >n*sПоследовательность из >n раз повторенной >s. Если >n < 0, возвращается пустая последовательность.
>s[i]Возвращает >i–й элемент >s или >len(s)+i–й, если >i < 0
>s[i:j:d]Срез из последовательности >s от >i до >j с шагом >d будет рассматриваться ниже
>min(s)Наименьший элемент >s
>max(s)Наибольший элемент >s

Дополнительные конструкции для изменчивых последовательностей:

>s[i] = x>i–й элемент списка >s заменяется на >x
>s[i:j:d] = tСрез от >i до >j (с шагом >d) заменяется на (список) >t
>del s[i:j:d]Удаление элементов среза из последовательности
Некоторые методы для работы с последовательностями

В таблице приведен ряд методов изменчивых последовательностей (например, списков).

МетодОписание
>append(x)Добавляет элемент в конец последовательности
>count(x)Считает количество элементов, равных >x
>extend(s)Добавляет к концу последовательности >последовательность
>index(x)Возвращает наименьшее >i, такое, что >s[i] == x. Возбуждает исключение >ValueError, если >x не найден в >s
>insert(i, x)Вставляет элемент >x в >i–й промежуток
>pop(i)Возвращает >i–й элемент, удаляя его из последовательности
>reverse()Меняет порядок элементов >s на обратный
>sort([cmpfunc])Сортирует элементы >s. Может быть указана своя функция сравнения >cmpfunc
Взятие элемента по индексу и срезы

Здесь же следует сказать несколько слов об индексировании последовательностей и выделении подстрок (и вообще — подпоследовательностей) по индексам. Для получения отдельного элемента последовательности используются квадратные скобки, в которых стоит выражение, дающее индекс. Индексы последовательностей в Python начинаются с нуля. Отрицательные индексы служат для отсчета элементов с конца последовательности (>-1 — последний элемент). Пример проясняет дело:

>>>> s = [0, 1, 2, 3, 4]

>>>> print s[0], s[-1], s[3]

>0 4 3

>>>> s[2] = -2

>>>> print s

>[0, 1, -2, 3, 4]

>>>> del s[2]

>>>> print s

>[0, 1, 3, 4]

Примечание:

Удалять элементы можно только из изменчивых последовательностей и желательно не делать этого внутри цикла по последовательности.

Несколько интереснее обстоят дела со срезами. Дело в том, что в Python при взятии среза последовательности принято нумеровать не элементы, а промежутки между ними. Поначалу это кажется необычным, тем не менее, очень удобно для указания произвольных срезов. Перед нулевым (по индексу) элементом последовательности промежуток имеет номер 0, после него — 1 и т.д.. Отрицательные значения отсчитывают промежутки с конца строки. Для записи срезов используется следующий синтаксис: