リストオブジェクト¶
-
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
を返します。 index が範囲を越えている場合、-1
を返してIndexError
をセットします。注釈
この関数は 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.
Return a list of the objects in list containing the objects between low and high. Return NULL and set an exception if unsuccessful. Analogous to
list[low:high]
. Indexing from the end of the list is not supported.バージョン 2.5 で変更: この関数は以前は low と high に
int *
型を使用していました。この変更により、 64 bit システムを正しくサポートするには修正が必要になります。
-
int
PyList_SetSlice
(PyObject *list, Py_ssize_t low, Py_ssize_t high, PyObject *itemlist)¶ Set the slice of list between low and high to the contents of itemlist. Analogous to
list[low:high] = itemlist
. The itemlist may be NULL, indicating the assignment of an empty list (slice deletion). Return0
on success,-1
on failure. Indexing from the end of the list is not supported.バージョン 2.5 で変更: この関数は以前は low と high に
int *
型を使用していました。この変更により、 64 bit システムを正しくサポートするには修正が必要になります。
-
int
PyList_Sort
(PyObject *list)¶ list の内容をインプレースでソートします。成功した場合には
0
を、失敗した場合には-1
を返します。list.sort()
と同じです。