List(串列)物件

typePyListObject

PyObject 的這個子型別表示 Python 的 list(串列)物件。

PyTypeObjectPyList_Type
穩定 ABI 的一部分.

PyTypeObject 實例表示 Python 的 list 型別。這與 Python 層中的list 是同一個物件。

intPyList_Check(PyObject*p)

如果p 是一個 list 物件或者是 list 型別之子型別的實例,就回傳 true。這個函式永遠會成功執行。

intPyList_CheckExact(PyObject*p)

如果p 是一個 list 物件但不是 list 型別的子型別的實例,就回傳 true。這個函式永遠會成功執行。

PyObject*PyList_New(Py_ssize_tlen)
回傳值:新的參照。穩定 ABI 的一部分.

成功時回傳長度為len 的新串列,失敗時回傳NULL

備註

如果len 大於零,則回傳的串列物件之項目將被設定為NULL。因此,在使用PyList_SetItem()PyList_SET_ITEM() 來將所有項目設定為一個真實物件前,你無法使用像是PySequence_SetItem() 的抽象 API 函式,也不能將物件暴露 (expose) 給 Python 程式碼。以下 API 在串列完全初始化之前是安全的:PyList_SetItem()PyList_SET_ITEM()

Py_ssize_tPyList_Size(PyObject*list)
穩定 ABI 的一部分.

回傳list 串列物件的長度;這相當於串列物件的len(list)

Py_ssize_tPyList_GET_SIZE(PyObject*list)

PyList_Size() 類似,但沒有錯誤檢查。

PyObject*PyList_GetItemRef(PyObject*list,Py_ssize_tindex)
回傳值:新的參照。穩定 ABI 的一部分 自 3.13 版本開始.

回傳list 指向的串列中位於index 位置的物件。該位置不可為負數;並不支援從串列尾末開始索引。如果index 超出邊界範圍 (<0or>=len(list)) 則回傳NULL 並設定IndexError 例外。

在 3.13 版被加入.

PyObject*PyList_GetItem(PyObject*list,Py_ssize_tindex)
回傳值:借用參照。穩定 ABI 的一部分.

LikePyList_GetItemRef(), but returns aborrowed reference instead of astrong reference.

PyObject*PyList_GET_ITEM(PyObject*list,Py_ssize_ti)
回傳值:借用參照。

PyList_GetItem() 類似,但沒有錯誤檢查。

intPyList_SetItem(PyObject*list,Py_ssize_tindex,PyObject*item)
穩定 ABI 的一部分.

將串列中索引index 處的項目設定為item。成功時回傳0。如果index 超出邊界範圍則回傳-1 並設定一個IndexError 例外。

備註

此函式「竊取」對item 的參照,並丟棄對串列中受影響位置上已存在項目的參照。

voidPyList_SET_ITEM(PyObject*list,Py_ssize_ti,PyObject*o)

PyList_SetItem() 的巨集形式,沒有錯誤檢查。這通常僅用於填充沒有已存在內容的新串列。

Bounds checking is performed as an assertion if Python is built indebug mode orwithassertions.

備註

該巨集「竊取」對item 的參照,並且與PyList_SetItem() 不同的是,它不會丟棄對任意被替換項目的參照;list 中位置i 的任何參照都將被洩漏 (leak)。

intPyList_Insert(PyObject*list,Py_ssize_tindex,PyObject*item)
穩定 ABI 的一部分.

將項目item 插入串列list 中索引index 的位置之前。如果成功則回傳0;如果失敗則回傳-1 並設定例外。類似於list.insert(index,item)

intPyList_Append(PyObject*list,PyObject*item)
穩定 ABI 的一部分.

將物件item 附加到串列list 的最後面。如果成功則回傳0;如果不成功,則回傳-1 並設定例外。類似於list.append(item)

PyObject*PyList_GetSlice(PyObject*list,Py_ssize_tlow,Py_ssize_thigh)
回傳值:新的參照。穩定 ABI 的一部分.

回傳list 中的物件串列,其中包含lowhigh之間的物件。如果沒有成功則回傳NULL 並設定例外。類似於list[low:high]。不支援從串列尾末開始索引。

intPyList_SetSlice(PyObject*list,Py_ssize_tlow,Py_ssize_thigh,PyObject*itemlist)
穩定 ABI 的一部分.

lowhigh 之間的list 切片設定為itemlist 的內容。類似於list[low:high]=itemlistitemlist 可能為NULL,表示分配一個空串列(切片刪除)。成功時回傳0,失敗時則回傳-1。不支援從串列尾末開始索引。

intPyList_Extend(PyObject*list,PyObject*iterable)

Extendlist with the contents ofiterable. This is the same asPyList_SetSlice(list,PY_SSIZE_T_MAX,PY_SSIZE_T_MAX,iterable)and analogous tolist.extend(iterable) orlist+=iterable.

Raise an exception and return-1 iflist is not alistobject. Return 0 on success.

在 3.13 版被加入.

intPyList_Clear(PyObject*list)

Remove all items fromlist. This is the same asPyList_SetSlice(list,0,PY_SSIZE_T_MAX,NULL) and analogous tolist.clear() ordellist[:].

Raise an exception and return-1 iflist is not alistobject. Return 0 on success.

在 3.13 版被加入.

intPyList_Sort(PyObject*list)
穩定 ABI 的一部分.

list 的項目進行原地 (in place) 排序。成功時回傳0,失敗時回傳-1。這相當於list.sort()

intPyList_Reverse(PyObject*list)
穩定 ABI 的一部分.

原地反轉list 的項目。成功時回傳0,失敗時回傳-1。這相當於list.reverse()

PyObject*PyList_AsTuple(PyObject*list)
回傳值:新的參照。穩定 ABI 的一部分.

回傳一個新的 tuple(元組)物件,其中包含list 的內容;相當於tuple(list)