列表对象¶
-
PyTypeObject
PyList_Type¶ 这是个属于
PyTypeObject的代表Python列表类型的实例。在Python层面和类型list是同一个对象。
-
PyObject*
PyList_New(Py_ssize_t len)¶ - Return value: New reference.
成功时返回长度为 len 的新列表,失败时返回 NULL。
注解
当 len 大于零时,被返回的列表对象项目被设成
NULL。因此你不能用类似C函数PySequence_SetItem()的抽象API或者用C函数PyList_SetItem()将所有项目设置成真实对象前对Python代码公开这个对象。
-
Py_ssize_t
PyList_GET_SIZE(PyObject *list)¶ 宏版本的C函数
PyList_Size(),没有错误检测。
-
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
IndexErrorexception.
-
PyObject*
PyList_GET_ITEM(PyObject *list, Py_ssize_t i)¶ - Return value: Borrowed reference.
宏版本的C函数
PyList_GetItem(),没有错误检测。
-
int
PyList_SetItem(PyObject *list, Py_ssize_t index, PyObject *item)¶ 将列表中索引为 index 的对象设为 item。成功时返回
0,失败时返回-1。注解
This function "steals" a reference to item and discards a reference to an item already in the list at the affected position.
-
void
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.注解
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.
-
int
PyList_Insert(PyObject *list, Py_ssize_t index, PyObject *item)¶ Insert the item item into list list in front of index index. Return
0if successful; return-1and set an exception if unsuccessful. Analogous tolist.insert(index, item).
-
int
PyList_Append(PyObject *list, PyObject *item)¶ Append the object item at the end of list list. Return
0if successful; return-1and set an exception if unsuccessful. Analogous tolist.append(item).
-
PyObject*
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]. Negative indices, as when slicing from Python, are not supported.
-
int
PyList_SetSlice(PyObject *list, Py_ssize_t low, Py_ssize_t high, PyObject *itemlist)¶ Set the slice of list between low and high to the contents of itemlist. Analogous to
list[low:high] = itemlist. The itemlist may be NULL, indicating the assignment of an empty list (slice deletion). Return0on success,-1on failure. Negative indices, as when slicing from Python, are not supported.
-
int
PyList_Sort(PyObject *list)¶ Sort the items of list in place. Return
0on success,-1on failure. This is equivalent tolist.sort().
-
int
PyList_Reverse(PyObject *list)¶ Reverse the items of list in place. Return
0on success,-1on failure. This is the equivalent oflist.reverse().
-
PyObject*
PyList_AsTuple(PyObject *list)¶ - Return value: New reference.
Return a new tuple object containing the contents of list; equivalent to
tuple(list).
-
int
PyList_ClearFreeList()¶ Clear the free list. Return the total number of freed items.
3.3 新版功能.
