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

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

PyListObject

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

PyTypeObject PyList_Type

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

int PyList_Check(PyObject *p)

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

Изменено в версии 2.2: Теперь допускаются подтипы.

int PyList_CheckExact(PyObject *p)

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

Новое в версии 2.2.

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

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

Примечание

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

Изменено в версии 2.5: Эта функция использовала int для size. Это может потребовать изменений в вашем коде для корректной поддержки 64-битных систем.

Py_ssize_t PyList_Size(PyObject *list)

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

Изменено в версии 2.5: Эта функция возвращала int. Это может потребовать изменений в вашем коде для корректной поддержки 64-битных систем.

Py_ssize_t PyList_GET_SIZE(PyObject *list)

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

Изменено в версии 2.5: Этот макрос возвращал int. Это может потребовать изменений в вашем коде для корректной поддержки 64-битных систем.

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

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

Изменено в версии 2.5: Эта функция использовала int для index. Это может потребовать изменений в вашем коде для корректной поддержки 64-битных систем.

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

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

Изменено в версии 2.5: Этот макрос использовал int для i. Это может потребовать изменений в вашем коде для корректной поддержки 64-битных систем.

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

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

Примечание

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

Изменено в версии 2.5: Эта функция использовала int для index. Это может потребовать изменений в вашем коде для корректной поддержки 64-битных систем.

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

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

Примечание

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

Изменено в версии 2.5: Этот макрос использовал int для i. Это может потребовать изменений в вашем коде для корректной поддержки 64-битных систем.

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

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

Изменено в версии 2.5: Эта функция использовала int для index. Это может потребовать изменений в вашем коде для корректной поддержки 64-битных систем.

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]. Индексация с конца списка не поддерживается.

Изменено в версии 2.5: Эта функция использовала int для low и high. Это может потребовать изменений в вашем коде для корректной поддержки 64-битных систем.

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 при неудаче. Индексация с конца списка не поддерживается.

Изменено в версии 2.5: Эта функция использовала int для low и high. Это может потребовать изменений в вашем коде для корректной поддержки 64-битных систем.

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)
Возвращаемое значение: новая ссылка.

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