列出对象 — Python 文档
列出对象
- type PyListObject
- PyObject 的这个子类型表示一个 Python 列表对象。
- PyTypeObject PyList_Type
- PyTypeObject 的这个实例表示 Python 列表类型。 这与 Python 层中的
list
是同一个对象。
- int PyList_Check(PyObject *p)
如果 p 是列表对象或列表类型的子类型的实例,则返回 true。
在 2.2 版更改:允许接受子类型。
- int PyList_CheckExact(PyObject *p)
如果 p 是列表对象,但不是列表类型的子类型的实例,则返回 true。
2.2 版中的新功能。
- PyObject *PyList_New(Py_ssize_t len)
成功时返回长度为 len 的新列表,失败时返回长度为 NULL 的新列表。
笔记
如果 len 大于零,则返回的列表对象的项设置为
NULL
。 因此,在使用 PyList_SetItem() 将所有项目设置为真实对象之前,您不能使用抽象 API 函数,例如 PySequence_SetItem() 或将对象暴露给 Python 代码。在 2.5 版更改:此功能使用
int
用于 大小。 这可能需要更改您的代码才能正确支持 64 位系统。
- Py_ssize_t PyList_Size(PyObject *list)
返回list中列表对象的长度; 这相当于列表对象上的
len(list)
。2.5 版变更:此函数返回
int
。 这可能需要更改您的代码才能正确支持 64 位系统。
- Py_ssize_t PyList_GET_SIZE(PyObject *list)
PyList_Size() 没有错误检查的宏形式。
2.5 版更改: 该宏返回
int
。 这可能需要更改您的代码才能正确支持 64 位系统。
- PyObject *PyList_GetItem(PyObject *list, Py_ssize_t index)
返回 list 指向的列表中位置 index 处的对象。 位置必须是非负数; 不支持从列表末尾开始索引。 如果指数超出范围(<0 或 >=len(list)),返回空值并设置一个
IndexError
例外。在 2.5 版更改:此函数使用
int
作为 index。 这可能需要更改您的代码才能正确支持 64 位系统。
- PyObject *PyList_GET_ITEM(PyObject *list, Py_ssize_t i)
PyList_GetItem() 没有错误检查的宏形式。
2.5 版更改: 该宏使用
int
用于 i。 这可能需要更改您的代码才能正确支持 64 位系统。
- int PyList_SetItem(PyObject *list, Py_ssize_t index, PyObject *item)
将列表中索引 index 处的项目设置为 项目 。 成功返回
0
。 如果 index 超出范围,则返回-1
并设置IndexError
异常。笔记
此函数“窃取”对 item 的引用,并丢弃对受影响位置列表中已有项目的引用。
在 2.5 版更改:此函数使用
int
作为 index。 这可能需要更改您的代码才能正确支持 64 位系统。
- void PyList_SET_ITEM(PyObject *list, Py_ssize_t i, PyObject *o)
PyList_SetItem() 没有错误检查的宏形式。 这通常仅用于填充没有以前内容的新列表。
笔记
这个宏“窃取”了对 item 的引用,并且与 PyList_SetItem() 不同, 不 丢弃对它被替换的任何项目的引用; list 中位于 i 位置的任何引用都将被泄露。
2.5 版更改: 该宏使用
int
用于 i。 这可能需要更改您的代码才能正确支持 64 位系统。
- int PyList_Insert(PyObject *list, Py_ssize_t index, PyObject *item)
将项项插入到索引索引前面的列表列表中。 成功返回
0
; 返回-1
并在不成功时设置异常。 类似于list.insert(index, item)
。在 2.5 版更改:此函数使用
int
作为 index。 这可能需要更改您的代码才能正确支持 64 位系统。
- 将对象 item 添加到列表 list 的末尾。 成功返回
0
; 返回-1
并在不成功时设置异常。 类似于list.append(item)
。
- PyObject *PyList_GetSlice(PyObject *list, Py_ssize_t low, Py_ssize_t high)
返回 list 中包含对象 ' low 和 high 之间的对象列表。 返回 NULL 并在不成功时设置异常。 类似于
list[low:high]
。 不支持从列表末尾开始索引。2.5 版更改: 此函数使用
int
用于 low 和 high。 这可能需要更改您的代码才能正确支持 64 位系统。
- int PyList_SetSlice(PyObject *list, Py_ssize_t low, Py_ssize_t high, PyObject *itemlist)
将low和high之间的list切片设置为itemlist的内容。 类似于
list[low:high] = itemlist
。 itemlist可能是NULL,表示分配了一个空列表(切片删除)。 成功返回0
,失败返回-1
。 不支持从列表末尾开始索引。2.5 版更改: 此函数使用
int
用于 low 和 high。 这可能需要更改您的代码才能正确支持 64 位系统。
- int PyList_Sort(PyObject *list)
- 将 列表 的项目排序到位。 成功返回
0
,失败返回-1
。 这相当于list.sort()
。
- int PyList_Reverse(PyObject *list)
- 将 list 的项目反转到位。 成功返回
0
,失败返回-1
。 这相当于list.reverse()
。
- 返回一个包含 list 内容的新元组对象; 相当于
tuple(list)
。