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

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

PyTypeObject PySeqIter_Type

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

int PySeqIter_Check(op)

Возвращает true, если тип op PySeqIter_Type.

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

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

PyTypeObject PyCallIter_Type

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

int PyCallIter_Check(op)

Возвращает true, если тип op PyCallIter_Type.

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

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