PyListObject
PyObject
represents a Python list object.PyList_Type
PyTypeObject
represents the Python list type. This is the same object as list
in the Python layer.PyList_Check
(PyObject *p)PyList_CheckExact
(PyObject *p)PyList_New
(Py_ssize_t len)Return value: New reference.
Return a new list of length len on success, or NULL
on failure.
Note
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()
.
PyList_Size
(PyObject *list)len(list)
on a list object.PyList_GET_SIZE
(PyObject *list)PyList_Size()
without error checking.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.
PyList_GET_ITEM
(PyObject *list, Py_ssize_t i)Return value: Borrowed reference.
Macro form of PyList_GetItem()
without error checking.
PyList_SetItem
(PyObject *list, Py_ssize_t index, PyObject *item)Set the item at index index in list to item. Return 0
on success.
If index is out of bounds, return -1
and set an IndexError
exception.
Note
This function “steals” a reference to item and discards a reference to an item already in the list at the affected position.
PyList_SET_ITEM
(PyObject *list, Py_ssize_t i, PyObject *o)Macro form of PyList_SetItem()
without error checking. This is
normally only used to fill in new lists where there is no previous content.
Note
This macro “steals” a reference to item, and, unlike
PyList_SetItem()
, does not discard a reference to any item that
is being replaced; any reference in list at position i will be
leaked.
PyList_Insert
(PyObject *list, Py_ssize_t index, PyObject *item)0
if successful; return -1
and set an exception if unsuccessful. Analogous to list.insert(index, item)
.PyList_Append
(PyObject *list, PyObject *item)0
if successful; return -1
and set an exception if unsuccessful. Analogous to list.append(item)
.PyList_GetSlice
(PyObject *list, Py_ssize_t low, Py_ssize_t high)Return value: New reference.
Return a list of the objects in list containing the objects between low
and high. Return NULL
and set an exception if unsuccessful. Analogous
to list[low:high]
. Indexing from the end of the list is not supported.
PyList_SetSlice
(PyObject *list, Py_ssize_t low, Py_ssize_t high, PyObject *itemlist)list[low:high] = itemlist
. The itemlist may be NULL
, indicating the assignment of an empty list (slice deletion). Return 0
on success, -1
on failure. Indexing from the end of the list is not supported.PyList_Sort
(PyObject *list)0
on success, -1
on failure. This is equivalent to list.sort()
.PyList_Reverse
(PyObject *list)0
on success, -1
on failure. This is the equivalent of list.reverse()
.PyList_AsTuple
(PyObject *list)Return value: New reference.
Return a new tuple object containing the contents of list; equivalent to
tuple(list)
.
PyList_ClearFreeList
()Clear the free list. Return the total number of freed items.
New in version 3.3.