Список об’єктів

PyListObject

Цей підтип PyObject представляє об’єкт списку Python.

PyTypeObject PyList_Type

Цей екземпляр PyTypeObject представляє тип списку Python. Це той самий об’єкт, що й list на рівні Python.

int PyList_Check(PyObject *p)

Return true if p is a list object or an instance of a subtype of the list type.

int PyList_CheckExact(PyObject *p)

Return true if p is a list object, but not an instance of a subtype of the list type.

PyObject* PyList_New(Py_ssize_t len)
Return value: New reference.

Повертає новий список довжиною len у разі успіху або NULL у разі помилки.

Примітка

If len is greater than zero, the returned list object’s items are set to NULL. Thus you cannot use abstract API functions such as PySequence_SetItem() or expose the object to Python code before setting all items to a real object with PyList_SetItem().

Py_ssize_t PyList_Size(PyObject *list)

Повертає довжину об’єкта списку в list; це еквівалентно len(list) для об’єкта списку.

Py_ssize_t PyList_GET_SIZE(PyObject *list)

Macro form of PyList_Size() without error checking.

PyObject* PyList_GetItem(PyObject *list, Py_ssize_t index)
Return value: Borrowed reference.

Return the object at position index in the list pointed to by list. The position must be non-negative; indexing from the end of the list is not supported. If index is out of bounds (<0 or >=len(list)), return NULL and set an IndexError exception.

PyObject* PyList_GET_ITEM(PyObject *list, Py_ssize_t i)
Return value: Borrowed reference.

Macro form of PyList_GetItem() without error checking.

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

Установіть для елемента з індексом index у списку значення item. У разі успіху повертає 0. Якщо index виходить за межі, поверніть -1 і встановіть виняток IndexError.

Примітка

Ця функція «викрадає» посилання на елемент і відкидає посилання на елемент, який уже є у списку в ураженій позиції.

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

Макроформа PyList_SetItem() без перевірки помилок. Зазвичай це використовується лише для заповнення нових списків, де немає попереднього вмісту.

Примітка

Цей макрос «викрадає» посилання на item і, на відміну від PyList_SetItem(), не відкидає посилання на будь-який елемент, який замінюється; будь-яке посилання в списку в позиції 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)
Return value: New reference.

Повертає список об’єктів у списку, що містить об’єкти між низьким і високим. Повертає NULL і встановлює виняток у разі невдачі. Аналогічно list[low:high]. Індексація з кінця списку не підтримується.

int PyList_SetSlice(PyObject *list, Py_ssize_t low, Py_ssize_t high, PyObject *itemlist)

Встановіть фрагмент списку між низьким і високим вмістом itemlist. Аналогічно list[low:high] = itemlist. itemlist може бути NULL, що вказує на призначення порожнього списку (видалення фрагмента). Повертає 0 в разі успіху, -1 у випадку невдачі. Індексація з кінця списку не підтримується.

int PyList_Sort(PyObject *list)

Розсортуйте елементи списку за місцем. Повертає 0 в разі успіху, -1 у випадку невдачі. Це еквівалентно list.sort().

int PyList_Reverse(PyObject *list)

Переверніть елементи списку на місця. Повертає 0 в разі успіху, -1 у випадку невдачі. Це еквівалент list.reverse().

PyObject* PyList_AsTuple(PyObject *list)
Return value: New reference.

Повертає новий об’єкт кортежу, що містить вміст list; еквівалент tuple(list).

int PyList_ClearFreeList()

Clear the free list. Return the total number of freed items.

Нове в версії 3.3.