This document is for an old version of Python that is no longer supported. You should upgrade and read the Python 当前稳定版本的文档.

# List（串列）物件

`PyListObject`

  This subtype of `PyObject` represents a Python list object.

PyTypeObject `PyList_Type`

  This instance of `PyTypeObject` represents the Python list type. This is the same object as `list` in the Python layer.

int `PyList_Check`(PyObject *p)

  Return true if p is a list object or an instance of a subtype of the list type.

  2.2 版更變: Allowed subtypes to be accepted.

int `PyList_CheckExact`(PyObject *p)

  Return true if p is a list object, but not an instance of a subtype of the list type.

  2.2 版新加入.

PyObject* `PyList_New`(Py_ssize_t len)
  Return value: New reference.

  Return a new list of length len on success, or NULL on failure.

  備註

  If len is greater than zero, the returned list object’s items are set to `NULL`. Thus you cannot use abstract API functions such as `PySequence_SetItem()` or expose the object to Python code before setting all items to a real object with `PyList_SetItem()`.

  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)

  Return the length of the list object in list; this is equivalent to `len(list)` on a list object.

  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)

  Macro form of `PyList_Size()` without error checking.

  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.

  Macro form of `PyList_GetItem()` without error checking.

  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` 异常。

  備註

  This function 「steals」 a reference to item and discards a reference to an item already in the list at the affected position.

  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)

  Macro form of `PyList_SetItem()` without error checking. This is normally only used to fill in new lists where there is no previous content.

  備註

  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)

  Insert the item item into list list in front of index index. Return `0` if successful; return `-1` and set an exception if unsuccessful. Analogous to `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)

  Append the object item at the end of list list. Return `0` if successful; return `-1` and set an exception if unsuccessful. Analogous to `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). Return `0` 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.

int `PyList_Sort`(PyObject *list)

  Sort the items of list in place. Return `0` on success, `-1` on failure. This is equivalent to `list.sort()`.

int `PyList_Reverse`(PyObject *list)

  Reverse the items of list in place. Return `0` on success, `-1` on failure. This is the equivalent of `list.reverse()`.

PyObject* `PyList_AsTuple`(PyObject *list)
  Return value: New reference.

  Return a new tuple object containing the contents of list; equivalent to `tuple(list)`.