Объекты списков¶List Objects
- PyTypeObject PyList_Type¶
Этот экземпляр PyTypeObject представляет тип списка Python. Это тот же объект, что и list и types.ListType на уровне Python.
- int PyList_Check(PyObject *p)¶
- Возвращает истину, если p является объектом списка или экземпляром подтипа типа list.
- int PyList_CheckExact(PyObject *p)¶
- Возвращает true, если p является объектом списка, но не экземпляром подтипа типа списка.
- PyObject* PyList_New(Py_ssize_t len)¶
- Возвращаемое значение: новая ссылка.
Возвращает новый список длины len в случае успеха или NULL при неудаче.
Примечание
Если length больше нуля, элементы возвращаемого списка устанавливаются в 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)¶
- Возвращаемое значение: заимствованная ссылка.
Возвращает объект на позиции pos в списке, на который указывает p. Позиция должна быть положительной; индексация с конца списка не поддерживается. Если pos выходит за границы, возвращается 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].
- 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().