リストオブジェクト¶
-
PyTypeObject PyList_Type¶
- 次に属します: Stable ABI.
この
PyTypeObjectのインスタンスは Python のリスト型を表現します。これは Python レイヤにおけるlistと同じオブジェクトです。
-
PyObject *PyList_New(Py_ssize_t len)¶
- 戻り値: 新しい参照。 次に属します: Stable ABI.
サイズが len 新たなリストオブジェクトを返します。 失敗すると
NULLを返します。注釈
len がゼロより大きい場合、返されたリストの要素は
NULLに設定されています。 そのため、PyList_SetItem()やPyList_SET_ITEM()ですべての要素に実際のオブジェクトを設定するまでは、PySequence_SetItem()などの抽象 API 関数を使ったり、このオブジェクトを Python コードに公開したりしてはなりません。 リストを完全に初期化する前でも安全に使える API はPyList_SetItem()とPyList_SET_ITEM()です。
-
Py_ssize_t PyList_Size(PyObject *list)¶
- 次に属します: Stable ABI.
リストオブジェクト list の長さを返します; リストオブジェクトにおける
len(list)と同じです。
-
Py_ssize_t PyList_GET_SIZE(PyObject *list)¶
PyList_Size()に似ていますが、エラーチェックを行いません。
-
PyObject *PyList_GetItemRef(PyObject *list, Py_ssize_t index)¶
- 戻り値: 新しい参照。 次に属します: Stable ABI (バージョン 3.13 より).
list が指すリストの位置 index にあるオブジェクトを返します。 位置は非負でなければならず、リストの末尾からのインデックス指定はサポートしません。 index が範囲外 (
<0 or >=len(list)) の場合、IndexErrorを設定してNULLを返します。Added in version 3.13.
-
PyObject *PyList_GetItem(PyObject *list, Py_ssize_t index)¶
- 戻り値: 借用参照。 次に属します: Stable ABI.
PyList_GetItemRef()と似ていますが、強参照 ではなく 借用参照 を返します。
-
PyObject *PyList_GET_ITEM(PyObject *list, Py_ssize_t i)¶
- 戻り値: 借用参照。
PyList_GetItem()に似ていますが、エラーチェックを行いません。
-
int PyList_SetItem(PyObject *list, Py_ssize_t index, PyObject *item)¶
- 次に属します: Stable ABI.
リストのインデックス index にある要素を item に設定します。 成功すると
0を返します。 index が範囲外の場合は、IndexErrorを設定して-1を返します。注釈
This function "steals" a reference to item, even on error. On success, it discards a reference to an item already in the list at the affected position (unless it was
NULL).
-
void PyList_SET_ITEM(PyObject *list, Py_ssize_t i, PyObject *o)¶
PyList_SetItem()をマクロによる実装で、エラーチェックを行いません。このマクロは、新たなリストのまだ要素を入れたことのない位置に要素を入れるときにのみ使います。Python を デバッグモード または
アサーションを有効にしてビルドした場合、アサーションによる境界チェックが行われます。注釈
This macro "steals" a reference to item, and, unlike
PyList_SetItem(), does not discard a reference to any item that is being replaced; any reference in list at position i will be leaked.
-
int PyList_Insert(PyObject *list, Py_ssize_t index, PyObject *item)¶
- 次に属します: Stable ABI.
要素 item をリスト list のインデックス index の前に挿入します。成功すると
0を返します。失敗すると-1を返し、例外をセットします。list.insert(index, item)に類似した機能です。
-
int PyList_Append(PyObject *list, PyObject *item)¶
- 次に属します: Stable ABI.
オブジェクト item を list の末尾に追加します。成功すると
0を返します; 失敗すると-1を返し、例外をセットします。list.append(item)に類似した機能です。
-
PyObject *PyList_GetSlice(PyObject *list, Py_ssize_t low, Py_ssize_t high)¶
- 戻り値: 新しい参照。 次に属します: Stable ABI.
list 内の、low から high までの オブジェクトからなるリストを返します。 失敗すると
NULLを返し、例外をセットします。list[low:high]に類似した機能です。 ただし、リストの末尾からのインデックスはサポートされていません。
-
int PyList_SetSlice(PyObject *list, Py_ssize_t low, Py_ssize_t high, PyObject *itemlist)¶
- 次に属します: Stable ABI.
low から high までの list のスライスを、 itemlist の内容にします。
list[low:high] = itemlistと類似の機能です。 itemlist はNULLでもよく、空リストの代入 (指定スライスの削除) になります。 成功した場合には0を、失敗した場合には-1を返します。 ただし、リストの末尾からのインデックスはサポートされていません。
-
int PyList_Extend(PyObject *list, PyObject *iterable)¶
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.
-
int PyList_Clear(PyObject *list)¶
list のすべての要素を削除します。
PyList_SetSlice(list, 0, PY_SSIZE_T_MAX, NULL)と同じで、list.clear()やdel list[:]に相当します。list が
listオブジェクトでなければ、例外を送出して-1を返します。 成功すると 0 を返します。Added in version 3.13.
-
int PyList_Sort(PyObject *list)¶
- 次に属します: Stable ABI.
list の内容をインプレースでソートします。成功した場合には
0を、失敗した場合には-1を返します。list.sort()と同じです。
-
int PyList_Reverse(PyObject *list)¶
- 次に属します: Stable ABI.
list の要素をインプレースで反転します。成功した場合には
0を、失敗した場合には-1を返します。list.reverse()と同じです。
-
PyObject *PyList_AsTuple(PyObject *list)¶
- 戻り値: 新しい参照。 次に属します: Stable ABI.
list の内容が入った新たなタプルオブジェクトを返します;
tuple(list)と同じです。