Документация Python неофициальный перевод

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

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

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

int PyList_Check(PyObject *p)
Возвращает истину, если p является объектом списка или экземпляром подтипа типа list.
int PyList_CheckExact(PyObject *p)
Возвращает true, если p является объектом списка, но не экземпляром подтипа типа списка.
PyObject* PyList_New(Py_ssize_t len)
Возвращаемое значение: новая ссылка.

Возвращает новый список длины len в случае успеха или NULL при неудаче.

Примечание

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

Py_ssize_t PyList_Size(PyObject *list)

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

Py_ssize_t PyList_GET_SIZE(PyObject *list)
Макроформа PyList_Size без проверки ошибок.
PyObject* PyList_GetItem(PyObject *list, Py_ssize_t index)
Возвращаемое значение: заимствованная ссылка.

Возвращает объект на позиции pos в списке, на который указывает p. Позиция должна быть положительной; индексация с конца списка не поддерживается. Если pos выходит за границы, возвращается 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)

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

Примечание

Эта функция «похищает» ссылку на 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)
Вставляет элемент item в список list перед индексом index. Возвращает 0 при успехе; при неудаче возвращает -1 и устанавливает исключение. Аналог list.insert(index, item).
int PyList_Append(PyObject *list, PyObject *item)
Добавляет объект item в конец списка list. Возвращает 0 при успехе; при неудаче возвращает -1 и устанавливает исключение. Аналог list.append(item).
PyObject* PyList_GetSlice(PyObject *list, Py_ssize_t low, Py_ssize_t high)
Возвращаемое значение: новая ссылка.

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

int PyList_SetSlice(PyObject *list, Py_ssize_t low, Py_ssize_t high, PyObject *itemlist)
Устанавливает срез списка list между low и high равным содержимому itemlist. Аналог list[low:high] = itemlist. itemlist может быть NULL, что означает присвоение пустого списка (удаление среза). Возвращает 0 при успехе, -1 при неудаче.
int PyList_Sort(PyObject *list)
Сортирует элементы списка list на месте. Возвращает 0 при успехе, -1 при неудаче. Эквивалентно list.sort().
int PyList_Reverse(PyObject *list)
Переворачивает элементы списка на месте. Возвращает 0 в случае успеха, -1 при ошибке. Эквивалентно list.reverse().
PyObject* PyList_AsTuple(PyObject *list)
Возвращаемое значение: новая ссылка.

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