Sequence Protocol

intPySequence_Check(PyObject*o)
Part of theStable ABI.

Return1if the object provides the sequence protocol, and0otherwise. Note that it returns1for Python classes with a__getitem__() method, unless they aredictsubclasses, since in general it is impossible to determine what type of keys the class supports. This function always succeeds.

Py_ssize_tPySequence_Size(PyObject*o)
Py_ssize_tPySequence_Length(PyObject*o)
Part of theStable ABI.

Returns the number of objects in sequenceoon success, and-1on failure. This is equivalent to the Python expressionlen(o).

PyObject*PySequence_Concat(PyObject*o1,PyObject*o2)
Return value: New reference.Part of theStable ABI.

Return the concatenation ofo1ando2on success, andNULLon failure. This is the equivalent of the Python expressiono1+o2.

PyObject*PySequence_Repeat(PyObject*o,Py_ssize_tcount)
Return value: New reference.Part of theStable ABI.

Return the result of repeating sequence objectocounttimes, orNULLon failure. This is the equivalent of the Python expressiono*count.

PyObject*PySequence_InPlaceConcat(PyObject*o1,PyObject*o2)
Return value: New reference.Part of theStable ABI.

Return the concatenation ofo1ando2on success, andNULLon failure. The operation is donein-placewheno1supports it. This is the equivalent of the Python expressiono1+=o2.

PyObject*PySequence_InPlaceRepeat(PyObject*o,Py_ssize_tcount)
Return value: New reference.Part of theStable ABI.

Return the result of repeating sequence objectocounttimes, orNULLon failure. The operation is donein-placewhenosupports it. This is the equivalent of the Python expressiono*=count.

PyObject*PySequence_GetItem(PyObject*o,Py_ssize_ti)
Return value: New reference.Part of theStable ABI.

Return theith element ofo,orNULLon failure. This is the equivalent of the Python expressiono[i].

PyObject*PySequence_GetSlice(PyObject*o,Py_ssize_ti1,Py_ssize_ti2)
Return value: New reference.Part of theStable ABI.

Return the slice of sequence objectobetweeni1andi2,orNULLon failure. This is the equivalent of the Python expressiono[i1:i2].

intPySequence_SetItem(PyObject*o,Py_ssize_ti,PyObject*v)
Part of theStable ABI.

Assign objectvto theith element ofo.Raise an exception and return-1on failure; return0on success. This is the equivalent of the Python statemento[i]=v.This functiondoes notsteal a reference tov.

IfvisNULL,the element is deleted, but this feature is deprecated in favour of usingPySequence_DelItem().

intPySequence_DelItem(PyObject*o,Py_ssize_ti)
Part of theStable ABI.

Delete theith element of objecto.Returns-1on failure. This is the equivalent of the Python statementdelo[i].

intPySequence_SetSlice(PyObject*o,Py_ssize_ti1,Py_ssize_ti2,PyObject*v)
Part of theStable ABI.

Assign the sequence objectvto the slice in sequence objectofromi1to i2.This is the equivalent of the Python statemento[i1:i2]=v.

intPySequence_DelSlice(PyObject*o,Py_ssize_ti1,Py_ssize_ti2)
Part of theStable ABI.

Delete the slice in sequence objectofromi1toi2.Returns-1on failure. This is the equivalent of the Python statementdelo[i1:i2].

Py_ssize_tPySequence_Count(PyObject*o,PyObject*value)
Part of theStable ABI.

Return the number of occurrences ofvalueino,that is, return the number of keys for whicho[key]==value.On failure, return-1.This is equivalent to the Python expressiono.count(value).

intPySequence_Contains(PyObject*o,PyObject*value)
Part of theStable ABI.

Determine ifocontainsvalue.If an item inois equal tovalue, return1,otherwise return0.On error, return-1.This is equivalent to the Python expressionvalueino.

Py_ssize_tPySequence_Index(PyObject*o,PyObject*value)
Part of theStable ABI.

Return the first indexifor whicho[i]==value.On error, return -1.This is equivalent to the Python expressiono.index(value).

PyObject*PySequence_List(PyObject*o)
Return value: New reference.Part of theStable ABI.

Return a list object with the same contents as the sequence or iterableo, orNULLon failure. The returned list is guaranteed to be new. This is equivalent to the Python expressionlist(o).

PyObject*PySequence_Tuple(PyObject*o)
Return value: New reference.Part of theStable ABI.

Return a tuple object with the same contents as the sequence or iterableo, orNULLon failure. Ifois a tuple, a new reference will be returned, otherwise a tuple will be constructed with the appropriate contents. This is equivalent to the Python expressiontuple(o).

PyObject*PySequence_Fast(PyObject*o,constchar*m)
Return value: New reference.Part of theStable ABI.

Return the sequence or iterableoas an object usable by the other PySequence_Fast*family of functions. If the object is not a sequence or iterable, raisesTypeErrorwithmas the message text. Returns NULLon failure.

ThePySequence_Fast*functions are thus named because they assume ois aPyTupleObjector aPyListObjectand access the data fields ofodirectly.

As a CPython implementation detail, ifois already a sequence or list, it will be returned.

Py_ssize_tPySequence_Fast_GET_SIZE(PyObject*o)

Returns the length ofo,assuming thatowas returned by PySequence_Fast()and thatois notNULL.The size can also be retrieved by callingPySequence_Size()ono,but PySequence_Fast_GET_SIZE()is faster because it can assumeois a list or tuple.

PyObject*PySequence_Fast_GET_ITEM(PyObject*o,Py_ssize_ti)
Return value: Borrowed reference.

Return theith element ofo,assuming thatowas returned by PySequence_Fast(),ois notNULL,and thatiis within bounds.

PyObject**PySequence_Fast_ITEMS(PyObject*o)

Return the underlying array of PyObject pointers. Assumes thatowas returned byPySequence_Fast()andois notNULL.

Note, if a list gets resized, the reallocation may relocate the items array. So, only use the underlying array pointer in contexts where the sequence cannot change.

PyObject*PySequence_ITEM(PyObject*o,Py_ssize_ti)
Return value: New reference.

Return theith element ofoorNULLon failure. Faster form of PySequence_GetItem()but without checking that PySequence_Check()onois true and without adjustment for negative indices.