リストオブジェクト
******************

PyListObject

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

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)

   Set the item at index *index* in list to *item*.  Return "0" on
   success. If *index* is out of bounds, return "-1" and set an
   "IndexError" exception.

   注釈: この関数は *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). Return "0" 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()" と同じです。

int PyList_Reverse(PyObject *list)

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

PyObject* PyList_AsTuple(PyObject *list)
    *Return value: New reference.*

   *list* の内容が入った新たなタプルオブジェクトを返します;
   "tuple(list)" と同じです。
