シーケンスプロトコル
- int PySequence_Check(PyObject *o)
- オブジェクトがシーケンスプロトコルを提供する場合は
1
を返し、それ以外の場合は0
を返します。 この関数は常に成功します。
- Py_ssize_t PySequence_Size(PyObject *o)
Py_ssize_t PySequence_Length(PyObject *o)
成功した場合は o 、失敗した場合は
-1
の順序でオブジェクトの数を返します。 これは、Python式len(o)
と同等です。バージョン2.5で変更:これらの関数は
int
タイプを返しました。 これには、64ビットシステムを適切にサポートするためにコードの変更が必要になる場合があります。
- 成功した場合は o1 と o2 の連結を返し、失敗した場合は NULL を返します。 これは、Python式
o1 + o2
と同等です。
- PyObject *PySequence_Repeat(PyObject *o, Py_ssize_t count)
シーケンスオブジェクト o count 回、または失敗した場合は NULL を繰り返した結果を返します。 これは、Python式
o * count
と同等です。バージョン2.5で変更:この関数は、カウントに
int
タイプを使用していました。 これには、64ビットシステムを適切にサポートするためにコードの変更が必要になる場合があります。
- 成功した場合は o1 と o2 の連結を返し、失敗した場合は NULL を返します。 o1 がサポートしている場合、操作はインプレースで実行されます。 これは、Python式
o1 += o2
と同等です。
- PyObject *PySequence_InPlaceRepeat(PyObject *o, Py_ssize_t count)
シーケンスオブジェクト o count 回、または失敗した場合は NULL を繰り返した結果を返します。 o がサポートしている場合、操作はインプレースで実行されます。 これは、Python式
o *= count
と同等です。バージョン2.5で変更:この関数は、カウントに
int
タイプを使用していました。 これには、64ビットシステムを適切にサポートするためにコードの変更が必要になる場合があります。
- PyObject *PySequence_GetItem(PyObject *o, Py_ssize_t i)
o の i 番目の要素を返すか、失敗した場合は NULL を返します。 これは、Python式
o[i]
と同等です。バージョン2.5で変更:この関数は、 i に
int
タイプを使用していました。 これには、64ビットシステムを適切にサポートするためにコードの変更が必要になる場合があります。
- PyObject *PySequence_GetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2)
シーケンスオブジェクト o のスライスを i1 と i2 の間で返すか、失敗した場合は NULL を返します。 これは、Python式
o[i1:i2]
と同等です。バージョン2.5で変更:この関数は、 i1 および i2 に
int
タイプを使用していました。 これには、64ビットシステムを適切にサポートするためにコードの変更が必要になる場合があります。
- int PySequence_SetItem(PyObject *o, Py_ssize_t i, PyObject *v)
オブジェクト v を o の i 番目の要素に割り当てます。 例外を発生させ、失敗した場合は
-1
を返します。 成功すると0
を返します。 これは、Pythonステートメントo[i] = v
と同等です。 この関数は v への参照を盗みません。v が NULL の場合、要素は削除されますが、 PySequence_DelItem()を使用するため、この機能は非推奨になりました。
バージョン2.5で変更:この関数は、 i に
int
タイプを使用していました。 これには、64ビットシステムを適切にサポートするためにコードの変更が必要になる場合があります。
- int PySequence_DelItem(PyObject *o, Py_ssize_t i)
オブジェクト o の i 番目の要素を削除します。 失敗すると
-1
を返します。 これは、Pythonステートメントdel o[i]
と同等です。バージョン2.5で変更:この関数は、 i に
int
タイプを使用していました。 これには、64ビットシステムを適切にサポートするためにコードの変更が必要になる場合があります。
- int PySequence_SetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2, PyObject *v)
シーケンスオブジェクト v を i1 から i2 までのシーケンスオブジェクト o のスライスに割り当てます。 例外を発生させ、失敗した場合は
-1
を返します。 成功すると0
を返します。 これは、Pythonステートメントo[i1:i2] = v
と同等です。v が NULL の場合、スライスは削除されますが、 PySequence_DelSlice()を使用するため、この機能は非推奨になりました。
バージョン2.5で変更:この関数は、 i1 および i2 に
int
タイプを使用していました。 これには、64ビットシステムを適切にサポートするためにコードの変更が必要になる場合があります。
- int PySequence_DelSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2)
i1 から i2 までのシーケンスオブジェクト o のスライスを削除します。 失敗すると
-1
を返します。 これは、Pythonステートメントdel o[i1:i2]
と同等です。バージョン2.5で変更:この関数は、 i1 および i2 に
int
タイプを使用していました。 これには、64ビットシステムを適切にサポートするためにコードの変更が必要になる場合があります。
- Py_ssize_t PySequence_Count(PyObject *o, PyObject *value)
o 内の value の出現回数を返します。つまり、
o[key] == value
のキーの数を返します。 失敗した場合は、-1
を返します。 これは、Python式o.count(value)
と同等です。バージョン2.5で変更:この関数は
int
タイプを返しました。 これには、64ビットシステムを適切にサポートするためにコードの変更が必要になる場合があります。
- o に値が含まれているかどうかを確認します。 o の項目が value と等しい場合は、
1
を返します。それ以外の場合は、0
を返します。 エラーの場合は、-1
を返します。 これは、Python式value in o
と同等です。
- Py_ssize_t PySequence_Index(PyObject *o, PyObject *value)
o[i] == value
の最初のインデックス i を返します。 エラーの場合は、-1
を返します。 これは、Python式o.index(value)
と同等です。バージョン2.5で変更:この関数は
int
タイプを返しました。 これには、64ビットシステムを適切にサポートするためにコードの変更が必要になる場合があります。
- 任意のシーケンス o と同じ内容のリストオブジェクトを返します。 返されるリストは新しいものであることが保証されています。
- 失敗した場合、任意のシーケンス o または NULL と同じ内容のタプルオブジェクトを返します。 o がタプルの場合、新しい参照が返されます。それ以外の場合、タプルは適切な内容で作成されます。 これは、Python式
tuple(o)
と同等です。
- シーケンス o がリストとして返されます。ただし、すでにタプルまたはリストである場合は、 o が返されます。 PySequence_Fast_GET_ITEM()を使用して、結果のメンバーにアクセスします。 失敗すると NULL を返します。 オブジェクトがシーケンスでない場合は、メッセージテキストとして m を指定して
TypeError
を発生させます。
- PyObject *PySequence_Fast_GET_ITEM(PyObject *o, Py_ssize_t i)
o が PySequence_Fast()によって返されたと仮定して、 o の i 番目の要素を返します。 o は NULL ではなく、 i は範囲内です。
バージョン2.5で変更:この関数は、 i に
int
タイプを使用していました。 これには、64ビットシステムを適切にサポートするためにコードの変更が必要になる場合があります。
- PyObject **PySequence_Fast_ITEMS(PyObject *o)
PyObjectポインタの基になる配列を返します。 o が PySequence_Fast()によって返され、 o が NULL ではないと想定します。
リストのサイズが変更されると、再割り当てによってアイテムの配列が再配置される場合があることに注意してください。 したがって、シーケンスを変更できないコンテキストでのみ、基になる配列ポインタを使用してください。
バージョン2.4の新機能。
- PyObject *PySequence_ITEM(PyObject *o, Py_ssize_t i)
失敗した場合は、 o または NULL の i 番目の要素を返します。 PySequence_GetItem()のマクロ形式ですが、 o の PySequence_Check()が真であることを確認せず、負のインデックスを調整しません。
バージョン2.3の新機能。
バージョン2.5で変更:この関数は、 i に
int
タイプを使用していました。 これには、64ビットシステムを適切にサポートするためにコードの変更が必要になる場合があります。
- Py_ssize_t PySequence_Fast_GET_SIZE(PyObject *o)
- o が PySequence_Fast()によって返され、 o が NULL でない場合、 o の長さを返します。 ]。 サイズは、 o で PySequence_Size()を呼び出すことでも取得できますが、 PySequence_Fast_GET_SIZE()は、 o がリストまたはタプル。