Spec-Zone.ru › Python 3.12

Объекты списков

type PyListObject

Этот подтип PyObject представляет объект списка Python.

PyTypeObject PyList_Type
Часть стабильного ABI.

Этот экземпляр PyTypeObject представляет тип списков Python. Это тот же объект, что и list на уровне Python.

int PyList_Check(PyObject *p)

Возвращает true, если p является объектом списка или экземпляром подтипа типа списка. Эта функция всегда завершается успешно.

int PyList_CheckExact(PyObject *p)

Возвращает true, если p является объектом списка, но не экземпляром подтипа типа списка. Эта функция всегда завершается успешно.

PyObject *PyList_New(Py_ssize_t len)
Возвращаемое значение: новая ссылка. Часть стабильного ABI.

При успешном выполнении возвращает новый список длины len, а при ошибке — NULL.

Примечание

Если len больше нуля, элементы возвращённого объекта списка устанавливаются в NULL. Поэтому нельзя использовать функции абстрактного API, такие как PySequence_SetItem(), или предоставлять объект коду Python, пока все элементы не будут установлены в реальные объекты с помощью PyList_SetItem().

Py_ssize_t PyList_Size(PyObject *list)
Часть стабильного ABI.

Возвращает длину объекта списка list; это эквивалентно len(list) для объекта списка.

Py_ssize_t PyList_GET_SIZE(PyObject *list)

Аналогична PyList_Size(), но не выполняет проверку ошибок.

PyObject *PyList_GetItem(PyObject *list, Py_ssize_t index)
Возвращаемое значение: заимствованная ссылка. Часть стабильного ABI.

Возвращает объект в позиции index списка, на который указывает list. Позиция должна быть неотрицательной; индексация с конца списка не поддерживается. Если index выходит за границы (<0 или >=len(list)), возвращает NULL и устанавливает исключение IndexError.

PyObject *PyList_GET_ITEM(PyObject *list, Py_ssize_t i)
Возвращаемое значение: заимствованная ссылка.

Аналогична PyList_GetItem(), но не выполняет проверку ошибок.

int PyList_SetItem(PyObject *list, Py_ssize_t index, PyObject *item)
Часть стабильного ABI.

Устанавливает элемент item в списке по индексу index. При успешном выполнении возвращает 0. Если index выходит за границы, возвращает -1 и устанавливает исключение IndexError.

Примечание

Эта функция «забирает» ссылку на item и отбрасывает ссылку на элемент, уже находящийся в списке в указанной позиции.

void PyList_SET_ITEM(PyObject *list, Py_ssize_t i, PyObject *o)

Макросная форма PyList_SetItem() без проверки ошибок. Обычно используется только для заполнения новых списков, в которых ещё нет содержимого.

Примечание

Этот макрос «забирает» ссылку на item и, в отличие от PyList_SetItem(), не отбрасывает ссылку на заменяемый элемент; любая ссылка в list в позиции i будет утекать.

int PyList_Insert(PyObject *list, Py_ssize_t index, PyObject *item)
Часть стабильного ABI.

Вставляет элемент item в список list перед индексом index. При успешном выполнении возвращает 0; при неудаче возвращает -1 и устанавливает исключение. Аналогично list.insert(index, item).

int PyList_Append(PyObject *list, PyObject *item)
Часть стабильного ABI.

Добавляет объект item в конец списка list. При успешном выполнении возвращает 0; при неудаче возвращает -1 и устанавливает исключение. Аналогично list.append(item).

PyObject *PyList_GetSlice(PyObject *list, Py_ssize_t low, Py_ssize_t high)
Возвращаемое значение: новая ссылка. Часть стабильного ABI.

Возвращает список объектов из list, содержащий объекты между low и high. При неудаче возвращает NULL и устанавливает исключение. Аналогично list[low:high]. Индексация с конца списка не поддерживается.

int PyList_SetSlice(PyObject *list, Py_ssize_t low, Py_ssize_t high, PyObject *itemlist)
Часть стабильного ABI.

Заменяет срез list между low и high содержимым itemlist. Аналогично list[low:high] = itemlist. Значение itemlist может быть NULL, что означает присваивание пустого списка (удаление среза). При успешном выполнении возвращает 0, при неудаче — -1. Индексация с конца списка не поддерживается.

int PyList_Sort(PyObject *list)
Часть стабильного ABI.

Сортирует элементы list на месте. При успешном выполнении возвращает 0, при неудаче — -1. Эквивалентно list.sort().

int PyList_Reverse(PyObject *list)
Часть стабильного ABI.

Разворачивает элементы list на месте. При успешном выполнении возвращает 0, при неудаче — -1. Эквивалентно list.reverse().

PyObject *PyList_AsTuple(PyObject *list)
Возвращаемое значение: новая ссылка. Часть стабильного ABI.

Возвращает новый объект кортежа, содержащий содержимое list; эквивалентно tuple(list).

© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.12/c-api/list.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API