On this page
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
。
Note
如果* len *大于零,则返回的列表对象的项目设置为NULL
。因此,在使用PyList_SetItem()将所有项目设置为真实对象之前,您不能使用抽象的 API 函数(例如PySequence_SetItem())或将对象暴露给 Python 代码。
- Py_ssize_t
PyList_Size
(PyObject ** list *)- 返回* list *中列表对象的长度;这等效于列表对象上的
len(list)
。
- 返回* list *中列表对象的长度;这等效于列表对象上的
Py_ssize_t
PyList_GET_SIZE
(PyObject ** list *)- PyList_Size()宏形式,无错误检查。
PyObject *
PyList_GetItem
(PyObject ** list *,Py_ssize_t * index *)- *返回值:借用参考。
返回* list 指向的列表中 index 位置的对象。该职位必须为非负;不支持从列表末尾开始索引。如果 index *超出范围(<0 or > = len(list)),则返回NULL
并设置IndexErrorexception。
PyList_GetItem()宏形式,无错误检查。
- int
PyList_SetItem
(PyObject **list ,Py_ssize_t * index ,PyObject item *)- 将列表中索引* index 的项目设置为 item 。成功返回
0
。如果 index *超出范围,则返回-1
并设置IndexError异常。
- 将列表中索引* index 的项目设置为 item 。成功返回
Note
此函数“窃取”对* item *的引用,并丢弃对受影响位置中列表中已有项目的引用。
- 无效
PyList_SET_ITEM
(PyObject **list ,Py_ssize_t * i ,PyObject o *)- PyList_SetItem()宏形式,无错误检查。通常仅用于填写没有先前内容的新列表。
Note
该宏“窃取”对* item 的引用,与PyList_SetItem()不同,它不不*放弃对要替换的任何项目的引用; * list 中位置 i *的所有引用都将泄漏。
int
PyList_Insert
(PyObject **list ,Py_ssize_t * index ,PyObject item *)- 将* item 项目插入索引 index 前面的列表 list *中。成功返回
0
;返回-1
并设置失败的异常。类似于list.insert(index, item)
。
- 将* item 项目插入索引 index 前面的列表 list *中。成功返回
int
PyList_Append
(PyObject *list ,PyObject item *)- 在列表* list 的末尾附加对象 item *。成功返回
0
;返回-1
并设置失败的异常。类似于list.append(item)
。
- 在列表* list 的末尾附加对象 item *。成功返回
PyObject *
PyList_GetSlice
(PyObject ** list *,Py_ssize_t * low *,Py_ssize_t * high *)- 返回值:新参考.
返回* list 中包含 low 和 high *之间的对象的对象列表。返回NULL
并设置失败的异常。类似于list[low:high]
。不支持从列表末尾开始索引。
int
PyList_SetSlice
(PyObject **list *,Py_ssize_t * low ,Py_ssize_t * high ,PyObject itemlist *)- 将* list 在 low 和 high 之间的切片设置为 itemlist *的内容。类似于
list[low:high] = itemlist
。 * itemlist *可以是NULL
,表示分配了一个空列表(切片删除)。成功返回0
,失败返回-1
。不支持从列表末尾开始索引。
- 将* list 在 low 和 high 之间的切片设置为 itemlist *的内容。类似于
int
PyList_Sort
(PyObject ** list *)- 对* list *的项目进行适当排序。成功返回
0
,失败返回-1
。这等效于list.sort()
。
- 对* list *的项目进行适当排序。成功返回
int
PyList_Reverse
(PyObject ** list *)- 反转* list *的项目。成功返回
0
,失败返回-1
。这等效于list.reverse()
。
- 反转* list *的项目。成功返回
PyObject *
PyList_AsTuple
(PyObject *列表)- 返回值:新参考.
返回一个新的 Tuples 对象,其中包含* list *的内容;相当于tuple(list)
。
- int
PyList_ClearFreeList
()- 清除空闲列表。返回释放的项目总数。
版本 3.3 中的新Function。