List Objects

PyListObject

PyObject的此子类型表示Python列表对象。

PyTypeObject PyList_Type

此实例PyTypeObject表示Python列表类型。这是与Python层中的list相同的对象。

int PyList_Check(PyObject *p)

如果p是列表对象或列表类型的子类型的实例,则返回true。

int PyList_CheckExact(PyObject *p)

如果p是列表对象,而不是列表类型的子类型的实例,则返回true。

PyObject* PyList_New(Py_ssize_t len)
返回值:新引用。

成功时返回长度len的新列表,或在失败时返回NULL

注意

如果len大于零,则返回的列表对象的项目设置为NULL因此,在使用PyList_SetItem()将所有项目设置为真实对象之前,不能使用抽象API函数(例如PySequence_SetItem()或将对象暴露给Python代码)。

Py_ssize_t PyList_Size(PyObject *list)

返回列表中列表对象的长度;这相当于列表对象上的len(list)

Py_ssize_t PyList_GET_SIZE(PyObject *list)

没有错误检查的PyList_Size()的宏形式。

PyObject* PyList_GetItem(PyObject *list, Py_ssize_t index)
返回值:借用引用。

返回列表所指向的列表中索引位置的对象。位置必须为正,不支持从列表结尾索引。如果index超出范围,请返回NULL并设置IndexError异常。

PyObject* PyList_GET_ITEM(PyObject *list, Py_ssize_t i)
返回值:借用引用。

不带错误检查的PyList_GetItem()的宏形式。

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

将列表中索引索引处的项目设置为项目成功时返回0,失败时返回-1

注意

此函数“偷取”对的引用,并放弃对受影响位置列表中已有项目的引用。

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

没有错误检查的PyList_SetItem()的宏形式。这通常只用于填充没有以前内容的新列表。

注意

此宏“偷窃”对的引用,并且与PyList_SetItem()不同,不会丢弃对正在替换的任何项的引用;在位置i列表中的任何引用将被泄漏。

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

项目插入到索引索引前的列表列表中。如果成功,返回0;返回-1并设置异常如果不成功。类似于list.insert(index, item)

int PyList_Append(PyObject *list, PyObject *item)

在列表列表末尾添加对象如果成功,返回0;返回-1并设置异常如果不成功。类似于list.append(item)

PyObject* PyList_GetSlice(PyObject *list, Py_ssize_t low, Py_ssize_t high)
返回值:新引用。

返回列表中包含 之间的对象的对象列表。返回NULL并设置异常,如果不成功。类似于list[low:high]不支持从Python进行切片时的负索引。

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

之间的列表切片设置为itemlist的内容。类似列表[low:high] = itemlist项目列表可以是NULL,指示空列表的分配(片段删除)。成功时返回0,失败时返回-1不支持从Python进行切片时的负索引。

int PyList_Sort(PyObject *list)

列表的项目进行排序。成功时返回0,失败时返回-1这相当于list.sort()

int PyList_Reverse(PyObject *list)

反转列表的项目。成功时返回0,失败时返回-1这相当于list.reverse()

PyObject* PyList_AsTuple(PyObject *list)
返回值:新引用。

返回包含列表的内容的新元组对象;相当于tuple(list)

int PyList_ClearFreeList()

清除空闲列表。返回已释放项目的总数。

版本3.3中的新功能。