列表对象

  • type PyListObject
  • 这个C类型 PyObject 的子类型代表一个Python列表对象。
  • 属于 稳定 ABI. 这是个属于 PyTypeObject 的代表Python列表类型的实例。在Python层面和类型 list 是同一个对象。
  • 如果 p 是一个 list 对象或者 list 类型的子类型的实例则返回真值。 此函数总是会成功执行。
  • 如果 p 是一个 list 对象但不是 list 类型的子类型的实例则返回真值。 此函数总是会成功执行。
  • 返回值:新的引用。 属于 稳定 ABI. 成功时返回一个长度为 len 的新列表,失败时返回 NULL

备注

当 len 大于零时,被返回的列表对象的条目将被设为 NULL。 因此你不能使用抽象 API 函数如 PySequence_SetItem() 或者在使用 PyList_SetItem()PyList_SET_ITEM() 将所有条目设为真实对象之前将对象暴露给 Python 代码。 以下 API 在该列表完全初始化之前将是安全的 API: PyList_SetItem()PyList_SET_ITEM()

  • 属于 稳定 ABI. 返回 list 中列表对象的长度;这等于在列表对象调用 len(list)
  • 返回值:新的引用。 属于 稳定 ABI 自 3.13 版起. 返回 list 所指向的列表中 index 位置上的对象。 位置值必须为非负数;不支持从列表末尾反向索引。 如果 index 超出范围 (<0 or >=len(list)),则返回 NULL 并设置 IndexError 异常。

Added in version 3.13.

  • 返回值:借入的引用。 类似于 PyList_GetItem(),但是不带错误检测。
  • 属于 稳定 ABI. 将列表中索引为 index 的项设为 item。 成功时返回 0。 如果 index 超出范围则返回 -1 并设定 IndexError 异常。

备注

此函数会“偷走”一个对 item 的引用并丢弃一个对列表中受影响位置上的已有条目的引用。

  • 不带错误检测的宏版本 PyList_SetItem()。 这通常只被用于新列表中之前没有内容的位置进行填充。

当 Python 以 调试模式启用断言 构建时将把绑定检测作为断言来执行。

备注

该宏会“偷走”一个对 item 的引用,但与 PyList_SetItem() 不同的是它 不会 丢弃对任何被替换条目的引用;在 list 的 i 位置上的任何引用都将被泄露。

  • 属于 稳定 ABI. 将条目 item 插入到列表 list 索引号 index 之前的位置。 如果成功将返回 0;如果不成功则返回 -1 并设置一个异常。 相当于 list.insert(index, item)
  • 属于 稳定 ABI. 将对象 item 添加到列表 list 的末尾。 如果成功将返回 0;如果不成功则返回 -1 并设置一个异常。 相当于 list.append(item)
  • 返回值:新的引用。 属于 稳定 ABI. 返回一个对象列表,包含 list 当中位于 low 和 high 之间 的对象。 如果不成功则返回 NULL 并设置异常。 相当于 list[low:high]。 不支持从列表末尾进行索引。
  • 属于 稳定 ABI. 将 list 当中 low 与 high 之间的切片设为 itemlist 的内容。 相当于 list[low:high] = itemlist。 itemlist 可以为 NULL,表示赋值为一个空列表(删除切片)。 成功时返回 0,失败时返回 -1。 这里不支持从列表末尾进行索引。
  • 使用 iterable 的内容扩展 list。 这与 PyList_SetSlice(list, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, iterable) 相同并与 list.extend(iterable)list += iterable 类似。

如果 list 不是 list 对象则会引发异常并返回 -1。 成功时返回 0。

Added in version 3.13.

  • 从 list 移除所有条目。 这与 PyList_SetSlice(list, 0, PY_SSIZE_T_MAX, NULL) 相同并与 list.clear()del list[:] 类似。

如果 list 不是 list 对象则会引发异常并返回 -1。 成功时返回 0。

Added in version 3.13.

  • 属于 稳定 ABI. 对 list 中的条目进行原地排序。 成功时返回 0,失败时返回 -1。 这等价于 list.sort()
  • 属于 稳定 ABI. 对 list 中的条目进行原地反转。 成功时返回 0,失败时返回 -1。 这等价于 list.reverse()
  • 返回值:新的引用。 属于 稳定 ABI. 返回一个新的元组对象,其中包含 list 的内容;等价于 tuple(list)