Список объектов

PyListObject

Данный подтип PyObject представляет объект списка Python.

PyTypeObject PyList_Type

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

int PyList_Check(PyObject *p)

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

int PyList_CheckExact(PyObject *p)

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

PyObject* PyList_New(Py_ssize_t len)
Return value: New reference.

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

Примечание

Если len больше нуля, элементы возвращаемого объекта списка устанавливаются на 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)
Return value: Borrowed reference.

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

PyObject* PyList_GET_ITEM(PyObject *list, Py_ssize_t i)
Return value: Borrowed reference.

Макро-форма PyList_GetItem() без проверки ошибок.

int PyList_SetItem(PyObject *list, Py_ssize_t index, PyObject *item)

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

Примечание

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

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

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

Примечание

Данный макрос «крадёт» ссылку на item и, в отличие от PyList_SetItem(), not удаляет ссылку на любой элемент, который заменяется; любая ссылка в 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)
Return value: New reference.

Возвращает список объектов в list, содержащий объекты between, 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)

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

PyObject* PyList_AsTuple(PyObject *list)
Return value: New reference.

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

int PyList_ClearFreeList()

Очистить свободный список. Возвращает общее количество освобождённых элементов.

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