Spec-Zone.ru › Python 3.13

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

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() или PyList_SET_ITEM(). Следующие API являются безопасными перед полной инициализацией списка: PyList_SetItem() и PyList_SET_ITEM().

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

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

Py_ssize_t PyList_GET_SIZE(PyObject *list)

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

PyObject *PyList_GetItemRef(PyObject *list, Py_ssize_t index)
Значение возврата: Новая ссылка. Часть Стабильного ABI с версии 3.13.

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

Добавлен в версии 3.13.

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

Подобно PyList_GetItemRef(), но возвращает заимствованную ссылку вместо сильной ссылки.

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

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

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

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

Примечание

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

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

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

Проверка границ выполняется как утверждение, если Python построен в отладочном режиме или with assertions.

Примечание

Этот макрос «забирает» ссылку на 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_Extend(PyObject *list, PyObject *iterable)

Расширяет list содержимым iterable. Это то же самое, что и PyList_SetSlice(list, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, iterable) и аналогично list.extend(iterable) или list += iterable.

Вызовет исключение и вернет -1 если list не является объектом list. Возвращает 0 при успехе.

Добавлен в версии 3.13.

int PyList_Clear(PyObject *list)

Удаляет все элементы из list. Это то же самое, что и PyList_SetSlice(list, 0, PY_SSIZE_T_MAX, NULL) и аналогично list.clear() или del list[:].

Вызовет исключение и вернет -1 если list не является объектом list. Возвращает 0 при успехе.

Добавлен в версии 3.13.

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

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

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

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

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

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

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

Spec-Zone.ru

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