On this page
List Objects
PyListObject
- PyObject的此子类型表示 Python 列表对象。
PyTypeObject
PyList_Type
- PyTypeObject的此实例表示 Python 列表类型。该对象与 Python 层中的
list
相同。
- PyTypeObject的此实例表示 Python 列表类型。该对象与 Python 层中的
int
PyList_Check
(PyObject ** p *)- 如果* p *是列表对象或列表类型的子类型的实例,则返回 true。
在版本 2.2 中更改:接受允许的子类型。
- int
PyList_CheckExact
(PyObject ** p *)- 如果* p *是列表对象,但不是列表类型的子类型的实例,则返回 true。
2.2 版中的新Function。
- PyObject *
PyList_New
(Py_ssize_t * len *)- 返回值:新参考.
成功返回一个新的长度* len 列表,失败则返回 NULL *。
Note
如果* len *大于零,则返回的列表对象的项目设置为NULL
。因此,在使用PyList_SetItem()将所有项目设置为真实对象之前,您不能使用抽象的 API 函数(例如PySequence_SetItem())或将对象暴露给 Python 代码。
在版本 2.5 中更改:此函数对_size *使用了int
。这可能需要更改您的代码以正确支持 64 位系统。
- Py_ssize_t
PyList_Size
(PyObject ** list *)- 返回* list *中列表对象的长度;这等效于列表对象上的
len(list)
。
- 返回* list *中列表对象的长度;这等效于列表对象上的
在版本 2.5 中更改:此函数返回int
。这可能需要更改您的代码以正确支持 64 位系统。
- Py_ssize_t
PyList_GET_SIZE
(PyObject ** list *)- PyList_Size()宏形式,无错误检查。
在版本 2.5 中更改:此宏返回int
。这可能需要更改您的代码以正确支持 64 位系统。
返回* list 指向的列表中 index 位置的对象。该职位必须为非负;不支持从列表末尾开始索引。如果 index 超出范围(<0 or > = len(list)),则返回 NULL *并设置IndexError异常。
在版本 2.5 中进行了更改:此函数将int
用作* index *。这可能需要更改您的代码以正确支持 64 位系统。
PyList_GetItem()宏形式,无错误检查。
在版本 2.5 中进行了更改:此宏将int
用作* i *。这可能需要更改您的代码以正确支持 64 位系统。
- int
PyList_SetItem
(PyObject **list ,Py_ssize_t * index ,PyObject item *)- 将列表中索引* index 的项目设置为 item 。成功返回
0
。如果 index *超出范围,则返回-1
并设置IndexError异常。
- 将列表中索引* index 的项目设置为 item 。成功返回
Note
此函数“窃取”对* item *的引用,并丢弃对受影响位置中列表中已有项目的引用。
在版本 2.5 中进行了更改:此函数将int
用作* index *。这可能需要更改您的代码以正确支持 64 位系统。
- 无效
PyList_SET_ITEM
(PyObject **list ,Py_ssize_t * i ,PyObject o *)- PyList_SetItem()宏形式,无错误检查。通常仅用于填写没有先前内容的新列表。
Note
该宏“窃取”对* item *的引用,与PyList_SetItem()不同,它不“不”丢弃对要替换的任何项目的引用; * list 中位置 i *的所有引用都将泄漏。
在版本 2.5 中进行了更改:此宏将int
用作* i *。这可能需要更改您的代码以正确支持 64 位系统。
- int
PyList_Insert
(PyObject **list ,Py_ssize_t * index ,PyObject item *)- 将* item 项目插入索引 index 前面的列表 list *中。成功返回
0
;返回-1
并设置失败的异常。类似于list.insert(index, item)
。
- 将* item 项目插入索引 index 前面的列表 list *中。成功返回
在版本 2.5 中进行了更改:此函数将int
用作* index *。这可能需要更改您的代码以正确支持 64 位系统。
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]
。不支持从列表末尾开始索引。
在版本 2.5 中更改:此函数对** low 和 high *使用了int
。这可能需要更改您的代码以正确支持 64 位系统。
- 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 *的内容。类似于
在版本 2.5 中更改:此函数对** low 和 high *使用了int
。这可能需要更改您的代码以正确支持 64 位系统。
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)
。