Объекты-итераторы

Python предоставляет два объекта-итератора общего назначения. Первый, итератор последовательности, работает с произвольной последовательностью, поддерживающей метод __getitem__(). Второй работает с вызываемым объектом и контрольным значением, вызывая вызываемый объект для каждого элемента в последовательности и заканчивая итерацию, когда возвращается контрольное значение.

PyTypeObject PySeqIter_Type

Объект типа для объектов-итераторов, возвращаемых PySeqIter_New(), и форма с одним аргументом встроенной функции iter() для встроенных типов последовательности.

int PySeqIter_Check(op)

Возвращает истину, если тип opPySeqIter_Type.

PyObject* PySeqIter_New(PyObject *seq)
Return value: New reference.

Возвращает итератор, который работает с общим объектом последовательности, seq. Итерация заканчивается, когда последовательность вызывает IndexError для операции индексации.

PyTypeObject PyCallIter_Type

Тип объекта для объектов-итераторов, возвращаемых PyCallIter_New() и формой с двумя аргументами встроенной функции iter().

int PyCallIter_Check(op)

Возвращает истину, если тип opPyCallIter_Type.

PyObject* PyCallIter_New(PyObject *callable, PyObject *sentinel)
Return value: New reference.

Возвращает новый итератор. Первый параметр, callable, может быть любым вызываемым объектом Python, который может быть вызван без параметров; каждый его вызов должен возвращать следующий элемент в итерации. Когда callable возвращает значение, равное sentinel, итерация прекращается.