Overview
Lists are mutable sequences of Python objects with O(1) indexing and append.
Creating Lists
PyObject* PyList_New(Py_ssize_t len)
Create new list with len items (initially NULL).
Example:
PyObject *list = PyList_New(3);
PyList_SetItem(list, 0, PyLong_FromLong(1)); // Steals ref
PyList_SetItem(list, 1, PyLong_FromLong(2));
PyList_SetItem(list, 2, PyLong_FromLong(3));
return list;
Accessing Items
PyObject* PyList_GetItem(PyObject *list, Py_ssize_t index) // Borrowed!
Py_ssize_t PyList_Size(PyObject *list)
PyList_GetItem returns borrowed reference - don’t Py_DECREF!
Modifying Lists
int PyList_SetItem(PyObject *list, Py_ssize_t index, PyObject *item) // Steals!
int PyList_Append(PyObject *list, PyObject *item) // Doesn't steal
int PyList_Insert(PyObject *list, Py_ssize_t index, PyObject *item)
See Also