Objetos iteradores

Python proporciona dos objetos iteradores de propósito general. El primero, un iterador de secuencia, funciona con una secuencia arbitraria que admite el método __getitem__(). El segundo funciona con un objeto invocable y un valor centinela, llamando al invocable para cada elemento en la secuencia y finalizando la iteración cuando se retorna el valor centinela.

PyTypeObject PySeqIter_Type
Part of the Stable ABI.

Objeto tipo para objetos iteradores retornados por PySeqIter_New() y la forma de un argumento de la función incorporada iter() para los tipos de secuencia incorporados.

int PySeqIter_Check(PyObject *op)

Retorna verdadero si el tipo de op es PySeqIter_Type. Esta función siempre finaliza con éxito.

PyObject *PySeqIter_New(PyObject *seq)
Return value: New reference. Part of the Stable ABI.

Retorna un iterador que funciona con un objeto de secuencia general, seq. La iteración termina cuando la secuencia lanza IndexError para la operación de suscripción.

PyTypeObject PyCallIter_Type
Part of the Stable ABI.

Objeto tipo para los objetos iteradores retornados por PyCallIter_New() y la forma de dos argumentos de la función incorporada iter().

int PyCallIter_Check(PyObject *op)

Retorna verdadero si el tipo de op es PyCallIter_Type. Esta función siempre finaliza con éxito.

PyObject *PyCallIter_New(PyObject *callable, PyObject *sentinel)
Return value: New reference. Part of the Stable ABI.

Retorna un nuevo iterador. El primer parámetro, callable, puede ser cualquier objeto invocable de Python que se pueda invocar sin parámetros; cada llamada debe retornar el siguiente elemento en la iteración. Cuando callable retorna un valor igual a sentinel, la iteración finalizará.

Range Objects

PyTypeObject PyRange_Type
Part of the Stable ABI.

The type object for range objects.

int PyRange_Check(PyObject *o)

Return true if the object o is an instance of a range object. This function always succeeds.

Builtin Iterator Types

These are built-in iteration types that are included in Python’s C API, but provide no additional functions. They are here for completeness.

C type

Python type

PyTypeObject PyEnum_Type
Part of the Stable ABI.

enumerate

PyTypeObject PyFilter_Type
Part of the Stable ABI.

filter

PyTypeObject PyMap_Type
Part of the Stable ABI.

map

PyTypeObject PyReversed_Type
Part of the Stable ABI.

reversed

PyTypeObject PyZip_Type
Part of the Stable ABI.

zip

Other Iterator Objects

PyTypeObject PyByteArrayIter_Type
Part of the Stable ABI.
PyTypeObject PyBytesIter_Type
Part of the Stable ABI.
PyTypeObject PyListIter_Type
Part of the Stable ABI.
PyTypeObject PyListRevIter_Type
Part of the Stable ABI.
PyTypeObject PySetIter_Type
Part of the Stable ABI.
PyTypeObject PyTupleIter_Type
Part of the Stable ABI.
PyTypeObject PyRangeIter_Type
Part of the Stable ABI.
PyTypeObject PyLongRangeIter_Type
Part of the Stable ABI.
PyTypeObject PyDictIterKey_Type
Part of the Stable ABI.
PyTypeObject PyDictRevIterKey_Type
Part of the Stable ABI since version 3.8.
PyTypeObject PyDictIterValue_Type
Part of the Stable ABI.
PyTypeObject PyDictRevIterValue_Type
Part of the Stable ABI since version 3.8.
PyTypeObject PyDictIterItem_Type
Part of the Stable ABI.
PyTypeObject PyDictRevIterItem_Type
Part of the Stable ABI since version 3.8.

Type objects for iterators of various built-in objects.

Do not create instances of these directly; prefer calling PyObject_GetIter() instead.

Note that there is no guarantee that a given built-in type uses a given iterator type. For example, iterating over range will use one of two iterator types depending on the size of the range. Other types may start using a similar scheme in the future, without warning.