リストオブジェクト¶
-
PyTypeObject
PyList_Type
¶ この
PyTypeObject
のインスタンスは Python のリスト型を表現します。これは Python レイヤにおけるlist
と同じオブジェクトです。
-
int
PyList_Check
(PyObject *p)¶ p がリストオブジェクトか、リスト型のサブタイプのインスタンスである場合に真を返します。
バージョン 2.2 で変更: サブタイプを引数にとれるようになりました.
-
int
PyList_CheckExact
(PyObject *p)¶ p がリスト型オブジェクトであり、かつリスト型のサブクラスのインスタンスでない場合に真を返します。
バージョン 2.2 で追加.
-
PyObject*
PyList_New
(Py_ssize_t len)¶ - Return value: New reference.
サイズが len 新たなリストオブジェクトを返します。失敗すると NULL を返します。
注釈
len が0より大きいとき、返されるリストオブジェクトの要素には
NULL
がセットされています。なので、PyList_SetItem()
で本当にオブジェクトをセットするまでは、Pythonコードにこのオブジェクトを渡したり、PySequence_SetItem()
のような抽象APIを利用してはいけません。バージョン 2.5 で変更: この関数は以前は size の型に
int
を利用していました。この変更により、 64bit システムを正しくサポートするには修正が必要になります。
-
Py_ssize_t
PyList_Size
(PyObject *list)¶ リストオブジェクト list の長さを返します; リストオブジェクトにおける
len(list)
と同じです。バージョン 2.5 で変更: この関数は以前は
int
を返していました。この変更により、 64 bit システムを正しくサポートするには修正が必要になります。
-
Py_ssize_t
PyList_GET_SIZE
(PyObject *list)¶ マクロ形式でできた
PyList_Size()
で、エラーチェックをしません。バージョン 2.5 で変更: このマクロは以前は
int
を返していました。この変更により、 64 bit システムを正しくサポートするには修正が必要になります。
-
PyObject*
PyList_GetItem
(PyObject *list, Py_ssize_t index)¶ - Return value: Borrowed reference.
list の指すリストオブジェクト内の、位置 index にあるオブジェクトを返します。位置は正である必要があり、リスト終端からのインデックスはサポートされていません。 index が範囲を超えている場合、 NULL を返して
IndexError
例外をセットします。バージョン 2.5 で変更: この関数は以前は index の型に
int
を利用していました。この変更により、 64 bit システムを正しくサポートするには修正が必要になります。
-
PyObject*
PyList_GET_ITEM
(PyObject *list, Py_ssize_t i)¶ - Return value: Borrowed reference.
マクロ形式でできた
PyList_GetItem()
で、エラーチェックをしません。バージョン 2.5 で変更: このマクロは以前は i の型に
int
を利用していました。この変更により、 64 bit システムを正しくサポートするには修正が必要になります。
-
int
PyList_SetItem
(PyObject *list, Py_ssize_t index, PyObject *item)¶ リストオブジェクト内の位置 index に、オブジェクト item を挿入します。成功した場合には
0
を返し、失敗すると-1
を返します。注釈
この関数は item への参照を "盗み取り" ます。また、変更先のインデクスにすでに別の要素が入っている場合、その要素に対する参照を放棄します。
バージョン 2.5 で変更: この関数は以前は index の型に
int
を利用していました。この変更により、 64 bit システムを正しくサポートするには修正が必要になります。
-
void
PyList_SET_ITEM
(PyObject *list, Py_ssize_t i, PyObject *o)¶ PyList_SetItem()
をマクロによる実装で、エラーチェックを行いません。このマクロは、新たなリストのまだ要素を入れたことのない位置に要素を入れるときにのみ使います。注釈
このマクロは item への参照を "盗み取り" ます。また、
PyList_SetItem()
と違って、要素の置き換えが生じても置き換えられるオブジェクトへの参照を放棄 しません ; その結果、 list 中の位置 i で参照されていたオブジェクトがメモリリークを引き起こします。バージョン 2.5 で変更: このマクロは以前は i の型に
int
を利用していました。この変更により、 64 bit システムを正しくサポートするには修正が必要になります。
-
int
PyList_Insert
(PyObject *list, Py_ssize_t index, PyObject *item)¶ 要素 item をリスト list のインデックス index の前に挿入します。成功すると
0
を返します。失敗すると-1
を返し、例外をセットします。list.insert(index, item)
に類似した機能です。バージョン 2.5 で変更: この関数は以前は index の型に
int
を利用していました。この変更により、 64 bit システムを正しくサポートするには修正が必要になります。
-
int
PyList_Append
(PyObject *list, PyObject *item)¶ オブジェクト item を list の末尾に追加します。成功すると
0
を返します; 失敗すると-1
を返し、例外をセットします。list.append(item)
に類似した機能です。
-
PyObject*
PyList_GetSlice
(PyObject *list, Py_ssize_t low, Py_ssize_t high)¶ - Return value: New reference.
list 内の、low から high の 間の オブジェクトからなるリストを返します。失敗すると NULL を返し、例外をセットします。
list[low:high]
に類似した機能です。ただし、Python のスライスにある負のインデックスはサポートされていません。バージョン 2.5 で変更: この関数は以前は low と high に
int *
型を使用していました。この変更により、 64 bit システムを正しくサポートするには修正が必要になります。
-
int
PyList_SetSlice
(PyObject *list, Py_ssize_t low, Py_ssize_t high, PyObject *itemlist)¶ list 内の、low から high の間のオブジェクトを、itemlist の内容にします。
list[low:high] = itemlist
と類似の機能です。itemlist は NULL でもよく、空リストの代入 (指定スライスの削除) になります。成功した場合には0
を、失敗した場合には-1
を返します。Python のスライスにある負のインデックスはサポートされていません。バージョン 2.5 で変更: この関数は以前は low と high に
int *
型を使用していました。この変更により、 64 bit システムを正しくサポートするには修正が必要になります。
-
int
PyList_Sort
(PyObject *list)¶ list の内容をインプレースでソートします。成功した場合には
0
を、失敗した場合には-1
を返します。list.sort()
と同じです。