Объекты списков¶List Objects
-
PyTypeObject
PyList_Type¶ Этот экземпляр
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)¶ - Возвращаемое значение: новая ссылка.
Возвращает новый список длины 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)¶ - Возвращаемое значение: заимствованная ссылка.
Возвращает объект по позиции 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)¶ Устанавливает элемент на индексе index в списке в значение item. Возвращает
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)¶ Вставляет элемент 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().