Объекты списков¶List Objects
-
PyTypeObject
PyList_Type¶ Этот экземпляр
PyTypeObjectпредставляет тип списка Python. Это тот же объект, что иlistв слое Python.
-
int
PyList_Check(PyObject *p)¶ Возвращает истину, если p является объектом списка или экземпляром подтипа типа list.
-
int
PyList_CheckExact(PyObject *p)¶ Возвращает истину, если p является объектом списка, но не экземпляром подтипа типа list.
-
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 выходит за границы, возвращается 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]. Отрицательные индексы, как при срезе в Python, не поддерживаются.
-
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при неудаче. Отрицательные индексы, как при срезе в Python, не поддерживаются.
-
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).
-
int
PyList_ClearFreeList()¶ Очищает список свободных элементов. Возвращает общее количество освобождённых элементов.
Новое в версии 3.3.