Среда разработки, основы языка и типы данных


Некоторые методы для работы с последовательностями



бет11/41
Дата27.10.2023
өлшемі331,81 Kb.
#188518
түріПрограмма
1   ...   7   8   9   10   11   12   13   14   ...   41
Байланысты:
Лекция

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

Метод

Описание

append(x)

Добавляет элемент в конец последовательности

count(x)

Считает количество элементов, равных x

extend(s)

Добавляет к концу последовательности последовательность s

index(x)

Возвращает наименьшее i, такое, что s[i] == x. Возбуждает исключение ValueError, если x не найден в s

insert(i, x)

Вставляет элемент x в i -й промежуток

pop(i)

Возвращает i -й элемент, удаляя его из последовательности

reverse(s)

Меняет порядок элементов 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 и т.д.. Отрицательные значения отсчитывают промежутки с конца строки. Для записи срезов используется следующий синтаксис:
последовательность[нач:кон:шаг]
где нач - промежуток начала среза, кон - конца среза, шаг - шаг. По умолчанию нач=0, кон=len(последовательность), шаг=1, если шаг не указан, второе двоеточие можно опустить.
А теперь пример работы со срезами:
>>> s = range(10)
>>> s
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> s[0:3] [0, 1, 2]
>>> s[-1:]
[9]
>>> s[::3]
[0, 3, 6, 9]
>>> s[0:0] = [-1, -1, -1]
>>> s
[-1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> del s[:3]
>>> s
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Как видно из этого примера, с помощью срезов удобно задавать любую подстроку, даже если она нулевой длины, как для удаления элементов, так и для вставки в строго определенное место.


Достарыңызбен бөлісу:
1   ...   7   8   9   10   11   12   13   14   ...   41




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет