列表对象¶
-
PyTypeObject
PyList_Type
¶ This instance of
PyTypeObject
represents the Python list type. This is the same object aslist
in the Python layer.
-
int
PyList_Check
(PyObject *p)¶ 如果 p 是一个列表对象或者是一个列表类型的子类型实例时,返回真。
在 2.2 版更改: Allowed subtypes to be accepted.
-
PyObject*
PyList_New
(Py_ssize_t len)¶ - Return value: New reference.
Return a new list of length len on success, or NULL on failure.
注解
当 len 大于零时,被返回的列表对象项目被设成
NULL
。因此你不能用类似C函数PySequence_SetItem()
的抽象API或者用C函数PyList_SetItem()
将所有项目设置成真实对象前对Python代码公开这个对象。在 2.5 版更改: This function used an
int
for size. This might require changes in your code for properly supporting 64-bit systems.
-
Py_ssize_t
PyList_Size
(PyObject *list)¶ 返回 list 中列表对象的长度;这等于在列表对象调用
len(list)
。在 2.5 版更改: This function returned an
int
. This might require changes in your code for properly supporting 64-bit systems.
-
Py_ssize_t
PyList_GET_SIZE
(PyObject *list)¶ 宏版本的C函数
PyList_Size()
,没有错误检测。在 2.5 版更改: This macro returned an
int
. This might require changes in your code for properly supporting 64-bit systems.
-
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
IndexError
exception.在 2.5 版更改: This function used an
int
for index. This might require changes in your code for properly supporting 64-bit systems.
-
PyObject*
PyList_GET_ITEM
(PyObject *list, Py_ssize_t i)¶ - Return value: Borrowed reference.
宏版本的C函数
PyList_GetItem()
,没有错误检测。在 2.5 版更改: This macro used an
int
for i. This might require changes in your code for properly supporting 64-bit systems.
-
int
PyList_SetItem
(PyObject *list, Py_ssize_t index, PyObject *item)¶ 将列表中索引为 index 的项设为 item。 成功时返回
0
。 如果 index 超出范围则返回-1
并设定IndexError
异常。注解
此函数会“偷走”一个对 item 的引用并丢弃一个对列表中受影响位置上的已有条目的引用。
在 2.5 版更改: This function used an
int
for index. This might require changes in your code for properly supporting 64-bit systems.
-
void
PyList_SET_ITEM
(PyObject *list, Py_ssize_t i, PyObject *o)¶ 不带错误检测的宏版本
PyList_SetItem()
。 这通常只被用于新列表中之前没有内容的位置进行填充。注解
This macro “steals” a reference to item, and, unlike
PyList_SetItem()
, does not discard a reference to any item that it being replaced; any reference in list at position i will be leaked.在 2.5 版更改: This macro used an
int
for i. This might require changes in your code for properly supporting 64-bit systems.
-
int
PyList_Insert
(PyObject *list, Py_ssize_t index, PyObject *item)¶ 将条目 item 插入到列表 list 索引号 index 之前的位置。 如果成功将返回
0
;如果不成功则返回-1
并设置一个异常。 相当于list.insert(index, item)
。在 2.5 版更改: This function used an
int
for index. This might require changes in your code for properly supporting 64-bit systems.
-
int
PyList_Append
(PyObject *list, PyObject *item)¶ 将对象 item 添加到列表 list 的末尾。 如果成功将返回
0
;如果不成功则返回-1
并设置一个异常。 相当于list.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]
. Indexing from the end of the list is not supported.在 2.5 版更改: This function used an
int
for low and high. This might require changes in your code for properly supporting 64-bit systems.
-
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). Return0
on success,-1
on failure. Indexing from the end of the list is not supported.在 2.5 版更改: This function used an
int
for low and high. This might require changes in your code for properly supporting 64-bit systems.