Spec-Zone.ru › Python 3.14

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

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

PyTypeObject PySeqIter_Type
Часть стабильного ABI.

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

int PySeqIter_Check(PyObject *op)

Возвращает true, если тип op — PySeqIter_Type. Эта функция всегда завершается успешно.

PyObject *PySeqIter_New(PyObject *seq)
Возвращаемое значение: новая ссылка. Часть стабильного ABI.

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

PyTypeObject PyCallIter_Type
Часть стабильного ABI.

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

int PyCallIter_Check(PyObject *op)

Возвращает true, если тип op — PyCallIter_Type. Эта функция всегда завершается успешно.

PyObject *PyCallIter_New(PyObject *callable, PyObject *sentinel)
Возвращаемое значение: новая ссылка. Часть стабильного ABI.

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

Объекты range

PyTypeObject PyRange_Type
Часть стабильного ABI.

Объект типа для объектов range.

int PyRange_Check(PyObject *o)

Возвращает true, если объект o является экземпляром объекта range. Эта функция всегда завершается успешно.

Встроенные типы итераторов

Это встроенные типы итераторов, включённые в C API Python, но не предоставляющие дополнительных функций. Они перечислены здесь для полноты.

Тип C

Тип Python

PyTypeObject PyEnum_Type
Часть стабильного ABI.

enumerate

PyTypeObject PyFilter_Type
Часть стабильного ABI.

filter

PyTypeObject PyMap_Type
Часть стабильного ABI.

map

PyTypeObject PyReversed_Type
Часть стабильного ABI.

reversed

PyTypeObject PyZip_Type
Часть стабильного ABI.

zip

Другие объекты-итераторы

PyTypeObject PyByteArrayIter_Type
Часть стабильного ABI.
PyTypeObject PyBytesIter_Type
Часть стабильного ABI.
PyTypeObject PyListIter_Type
Часть стабильного ABI.
PyTypeObject PyListRevIter_Type
Часть стабильного ABI.
PyTypeObject PySetIter_Type
Часть стабильного ABI.
PyTypeObject PyTupleIter_Type
Часть стабильного ABI.
PyTypeObject PyRangeIter_Type
Часть стабильного ABI.
PyTypeObject PyLongRangeIter_Type
Часть стабильного ABI.
PyTypeObject PyDictIterKey_Type
Часть стабильного ABI.
PyTypeObject PyDictRevIterKey_Type
Часть стабильного ABI начиная с версии 3.8.
PyTypeObject PyDictIterValue_Type
Часть стабильного ABI.
PyTypeObject PyDictRevIterValue_Type
Часть стабильного ABI начиная с версии 3.8.
PyTypeObject PyDictIterItem_Type
Часть стабильного ABI.
PyTypeObject PyDictRevIterItem_Type
Часть стабильного ABI начиная с версии 3.8.
PyTypeObject PyODictIter_Type

Объекты типов для итераторов различных встроенных объектов.

Не создавайте экземпляры этих типов напрямую; вместо этого вызывайте PyObject_GetIter().

Обратите внимание, что нет гарантии, что конкретный встроенный тип использует определённый тип итератора. Например, при итерации по range используется один из двух типов итераторов в зависимости от размера диапазона. В будущем другие типы могут начать использовать аналогичную схему без предупреждения.

© 2001 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.14/c-api/iterator.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API