GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Table of Contents
  • Iterator Objects
  • Module Objects
  • Descriptor Objects
  • Report a bug
  • Improve this page
  • Show source
  • index
  • modules
  • Python
  • 3.16.0a2 documentation
  • Python/C API reference manual
  • Concrete Objects Layer

This view

  • Original page
  • New address

GeezerVison is showing docs.python.org — Iterator Objects

Iterator Objects¶

Python provides two general-purpose iterator objects. The first, a sequence iterator, works with an arbitrary sequence supporting the __getitem__() method. The second works with a callable object and a sentinel value, calling the callable for each item in the sequence, and ending the iteration when the sentinel value is returned.

PyTypeObject PySeqIter_Type¶
Part of the Stable ABI.

Type object for iterator objects returned by PySeqIter_New() and the one-argument form of the iter() built-in function for built-in sequence types.

int PySeqIter_Check(PyObject *op)¶

Return true if the type of op is PySeqIter_Type. This function always succeeds.

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

Return an iterator that works with a general sequence object, seq. The iteration ends when the sequence raises IndexError for the subscripting operation.

PyTypeObject PyCallIter_Type¶
Part of the Stable ABI.

Type object for iterator objects returned by PyCallIter_New() and the two-argument form of the iter() built-in function.

int PyCallIter_Check(PyObject *op)¶

Return true if the type of op is PyCallIter_Type. This function always succeeds.

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

Return a new iterator. The first parameter, callable, can be any Python callable object that can be called with no parameters; each call to it should return the next item in the iteration. When callable returns a value equal to sentinel, the iteration will be terminated.

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.

These pointers are part of the Stable ABI.

C type

Python type

PyTypeObject PyEnum_Type¶

enumerate

PyTypeObject PyFilter_Type¶

filter

PyTypeObject PyMap_Type¶

map

PyTypeObject PyReversed_Type¶

reversed

PyTypeObject PyZip_Type¶

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.
PyTypeObject PyODictIter_Type¶

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.

© Copyright 2001 Python Software Foundation.
This page is licensed under the Python Software Foundation License Version 2.
Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
See History and License for more information.

The Python Software Foundation is a non-profit corporation. Please donate.

Last updated on Nov 12, 2026 (19:27 UTC). Found a bug?
Created using Sphinx 9.1.1.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.