This document is for an old version of Python that is no longer supported. You should upgrade, and read the Python documentation for the current stable release.

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

`PyListObject`

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

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)
  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)`.