リストオブジェクト¶
-
PyTypeObject
PyList_Type
¶ この
PyTypeObject
のインスタンスは Python のリスト型を表現します。これは Python レイヤにおけるlist
と同じオブジェクトです。
-
PyObject*
PyList_New
(Py_ssize_t len)¶ - Return value: New reference.
サイズが 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)¶ - Return value: Borrowed reference.
list の指すリストオブジェクト内の、位置 index にあるオブジェクトを返します。 位置は非負である必要があり、リスト終端からのインデックスはサポートされていません。 index が範囲を超えている場合、
NULL
を返してIndexError
例外をセットします。
-
PyObject*
PyList_GET_ITEM
(PyObject *list, Py_ssize_t i)¶ - Return value: Borrowed reference.
マクロ形式でできた
PyList_GetItem()
で、エラーチェックをしません。
-
int
PyList_SetItem
(PyObject *list, Py_ssize_t index, PyObject *item)¶ リストオブジェクト内の位置 index に、オブジェクト item を挿入します。 成功した場合には
0
を返します。 index が範囲を越えている場合、-1
を返してIndexError
をセットします。注釈
この関数は 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 をリスト list のインデックス index の前に挿入します。成功すると
0
を返します。失敗すると-1
を返し、例外をセットします。list.insert(index, item)
に類似した機能です。
-
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]
に類似した機能です。 ただし、リストの末尾からのインデックスはサポートされていません。
-
int
PyList_SetSlice
(PyObject *list, Py_ssize_t low, Py_ssize_t high, PyObject *itemlist)¶ low から high までの list のスライスを、 itemlist の内容にします。
list[low:high] = itemlist
と類似の機能です。 itemlist はNULL
でもよく、空リストの代入 (指定スライスの削除) になります。 成功した場合には0
を、失敗した場合には-1
を返します。 ただし、リストの末尾からのインデックスはサポートされていません。
-
int
PyList_Sort
(PyObject *list)¶ list の内容をインプレースでソートします。成功した場合には
0
を、失敗した場合には-1
を返します。list.sort()
と同じです。