7.3.5 List Objects

PyListObject
この PyObject のサブタイプは Python のリストオブジェクトを 表現します。

PyTypeObject PyList_Type
この PyTypeObject のインスタンスは Python のタプル型を表現します。 これは Python レイヤにおける listtypes.ListType と同じオブジェクトです。

int PyList_Check(PyObject *p)
引数が PyListObject である場合に真を返します。

PyObject* PyList_New(Py_ssize_t len)
戻り値: 新たな参照.
サイズが len 新たなリストオブジェクトを返します。 失敗すると NULL を返します。 注意: len が0より大きいとき、返されるリストオブジェクトの要素には NULL がセットされています。 なので、PyList_SetItem() で本当にオブジェクトをセットする までは、Pythonコードにこのオブジェクトを渡したり、PySequence_SetItem() のような抽象APIを利用してはいけません。

Py_ssize_t PyList_Size(PyObject *list)
リストオブジェクトlist の長さを返します; リストオブジェクトにおける "len(list)" と同じです。

Py_ssize_t PyList_GET_SIZE(PyObject *list)
マクロ形式でできた PyList_Size() で、エラーチェックを しません。

PyObject* PyList_GetItem(PyObject *list, Py_ssize_t index)
戻り値: 借りた参照.
p の指すリストオブジェクト内の、位置 pos にあるオブジェクト を返します。 位置は正である必要があり、リスとの終端からのインデックスは サポートされていません。pos が範囲を超えている場合、 NULL を返して IndexError 例外をセットします。

PyObject* PyList_GET_ITEM(PyObject *list, Py_ssize_t i)
戻り値: 借りた参照.
マクロ形式でできた PyList_GetItem() で、エラーチェックを しません。

int PyList_SetItem(PyObject *list, Py_ssize_t index, PyObject *item)
リストオブジェクト内の位置 index に、オブジェクト item を挿入します。成功した場合には0 を返し、失敗すると -1 を返します。 注意: この関数は item への参照を ``盗み取り'' ます。また、 変更先のインデクスにすでに別の要素が入っている場合、その 要素に対する参照を放棄します。

void PyList_SET_ITEM(PyObject *list, Py_ssize_t i, PyObject *o)
PyList_SetItem() をマクロによる実装で、エラーチェック を行いません。この関数は、新たなリストのまだ要素を入れたことのない 位置に要素を入れるときにのみ使います。 注意: この関数は item への参照を ``盗み取り'' ます。また、 PyList_SetItem() と違って、要素の置き換えが生じても 置き換えられるオブジェクトへの参照を放棄 しません; その結果、 list 中の位置 i で参照されていたオブジェクト がメモリリークを引き起こします。

int PyList_Insert(PyObject *list, Py_ssize_t index, PyObject *item)
要素 item をインデクス index の前に挿入します。 成功すると 0 を返します。失敗すると -1 を返し、 例外をセットします。 list.insert(index, item) に類似した 機能です。

int PyList_Append(PyObject *list, PyObject *item)
オブジェクト itemlist の末尾に追加します。 成功すると 0 を返します; 失敗すると -1 を返し、 例外をセットします。list.append(item) に類似した機能です。

PyObject* PyList_GetSlice(PyObject *list, Py_ssize_t low, Py_ssize_t high)
戻り値: 新たな参照.
list 内の、low から high間の オブジェクト からなるリストを返します。失敗すると NULL を返し、 例外をセットします。 list[low:high] に類似した機能です。

int PyList_SetSlice(PyObject *list, Py_ssize_t low, Py_ssize_t high, PyObject *itemlist)
list 内の、low から high の間のオブジェクトを、 itemlist の内容にします。 list[low:high] = itemlist と類似の機能です。itemlistNULL でもよく、空リストの 代入 (指定スライスの削除) になります。 成功した場合には 0 を、失敗した場合には -1 を返します。

int PyList_Sort(PyObject *list)
list の内容をインプレースでソートします。成功した場合には 0 を、失敗した場合には -1 を返します。 success, -1 on failure. "list.sort()" と同じです。

int PyList_Reverse(PyObject *list)
list の要素をインプレースで反転します。成功した場合には 0 を、失敗した場合には -1 を返します。 "list.reverse()" と同じです。

PyObject* PyList_AsTuple(PyObject *list)
戻り値: 新たな参照.
list の内容が入った新たなタプルオブジェクトを返します; "tuple(list)". と同じです。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。