Объекты списков¶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)¶
Переворачивает элементы списка на месте. Возвращает 0 в случае успеха, -1 при ошибке. Эквивалентно list.reverse().
- PyObject* PyList_AsTuple(PyObject *list)¶
- Возвращаемое значение: новая ссылка.
Возвращает новый объект кортежа, содержащий элементы списка; эквивалентно tuple(list).
- int PyList_ClearFreeList()¶
Очищает список свободных элементов. Возвращает общее количество освобождённых элементов.
Новое в версии 3.3.