Sequence Protocol

intPySequence_Check(PyObject *o)

Return1 if the object provides sequence protocol, and0 otherwise.This function always succeeds.

Py_ssize_tPySequence_Size(PyObject *o)
Py_ssize_tPySequence_Length(PyObject *o)

Returns the number of objects in sequenceo on success, and-1 on failure.For objects that do not provide sequence protocol, this is equivalent to thePython expressionlen(o).

PyObject*PySequence_Concat(PyObject *o1,PyObject *o2)
Return value: New reference.

Return the concatenation ofo1 ando2 on success, andNULL on failure.This is the equivalent of the Python expressiono1+o2.

PyObject*PySequence_Repeat(PyObject *o, Py_ssize_t count)
Return value: New reference.

Return the result of repeating sequence objectocount times, orNULL onfailure. This is the equivalent of the Python expressiono*count.

PyObject*PySequence_InPlaceConcat(PyObject *o1,PyObject *o2)
Return value: New reference.

Return the concatenation ofo1 ando2 on success, andNULL on failure.The operation is donein-place wheno1 supports it. This is the equivalentof the Python expressiono1+=o2.

PyObject*PySequence_InPlaceRepeat(PyObject *o, Py_ssize_t count)
Return value: New reference.

Return the result of repeating sequence objectocount times, orNULL onfailure. The operation is donein-place wheno supports it. This is theequivalent of the Python expressiono*=count.

PyObject*PySequence_GetItem(PyObject *o, Py_ssize_t i)
Return value: New reference.

Return theith element ofo, orNULL on failure. This is the equivalent ofthe Python expressiono[i].

PyObject*PySequence_GetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2)
Return value: New reference.

Return the slice of sequence objecto betweeni1 andi2, orNULL onfailure. This is the equivalent of the Python expressiono[i1:i2].

intPySequence_SetItem(PyObject *o, Py_ssize_t i,PyObject *v)

Assign objectv to theith element ofo. Raise an exceptionand return-1 on failure; return0 on success. Thisis the equivalent of the Python statemento[i]=v. This functiondoesnot steal a reference tov.

Ifv isNULL, the element is deleted, however this feature isdeprecated in favour of usingPySequence_DelItem().

intPySequence_DelItem(PyObject *o, Py_ssize_t i)

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

intPySequence_SetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2,PyObject *v)

Assign the sequence objectv to the slice in sequence objecto fromi1 toi2. This is the equivalent of the Python statemento[i1:i2]=v.

intPySequence_DelSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2)

Delete the slice in sequence objecto fromi1 toi2. Returns-1 onfailure. This is the equivalent of the Python statementdelo[i1:i2].

Py_ssize_tPySequence_Count(PyObject *o,PyObject *value)

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

intPySequence_Contains(PyObject *o,PyObject *value)

Determine ifo containsvalue. If an item ino is equal tovalue,return1, otherwise return0. On error, return-1. This isequivalent to the Python expressionvalueino.

Py_ssize_tPySequence_Index(PyObject *o,PyObject *value)

Return the first indexi for 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.

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

PyObject*PySequence_Tuple(PyObject *o)
Return value: New reference.

Return a tuple object with the same contents as the arbitrary sequenceo orNULL on failure. Ifo is a tuple, a new reference will be returned,otherwise a tuple will be constructed with the appropriate contents. This isequivalent to the Python expressiontuple(o).

PyObject*PySequence_Fast(PyObject *o, const char *m)
Return value: New reference.

Return the sequenceo as a list, unless it is already a tuple or list, inwhich caseo is returned. UsePySequence_Fast_GET_ITEM() to accessthe members of the result. ReturnsNULL on failure. If the object is nota sequence, raisesTypeError withm as the message text.

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

Return theith element ofo, assuming thato was returned byPySequence_Fast(),o is notNULL, and thati is within bounds.

PyObject**PySequence_Fast_ITEMS(PyObject *o)

Return the underlying array of PyObject pointers. Assumes thato was returnedbyPySequence_Fast() ando is 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 sequencecannot change.

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

Return theith element ofo orNULL on failure. Macro form ofPySequence_GetItem() but without checking thatPySequence_Check() ono is true and without adjustment for negativeindices.

Py_ssize_tPySequence_Fast_GET_SIZE(PyObject *o)

Returns the length ofo, assuming thato was returned byPySequence_Fast() and thato is notNULL. The size can also begotten by callingPySequence_Size() ono, butPySequence_Fast_GET_SIZE() is faster because it can assumeo is a listor tuple.