Home >Backend Development >Python Tutorial >How Do I Create and Use Iterators in Python?

How Do I Create and Use Iterators in Python?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-29 17:33:11219browse

How Do I Create and Use Iterators in Python?

Creating an Iterator in Python

Building an iterator in Python requires implementing the iterator protocol, which specifies two essential methods: __iter__() and __next__(). These methods define how objects can initialize and iterate through a sequence of values.

Understanding the Iterator Protocol

In __iter__(), the iterator object is returned, which is typically called implicitly at the start of loops. __next__() is the primary method that returns the next value in the sequence. For Python 2 users, this method is known as next(). When all values are exhausted, __next__() raises a StopIteration exception, which looping constructs capture to terminate iteration.

An Example: The Counter Iterator

Let's create a simple Counter iterator that generates values within a specified range:

class Counter:
    def __init__(self, low, high):
        self.current = low - 1
        self.high = high

    def __iter__(self):
        return self

    def __next__(self): # Python 2: def next(self)
        self.current += 1
        if self.current < self.high:
            return self.current
        raise StopIteration

# Usage:
for c in Counter(3, 9):
    print(c)

This will produce the following output:

3
4
5
6
7
8

Using Generators for Iterators

Generators offer an alternative mechanism for creating iterators. Generator functions yield values one at a time, effectively implementing the iterator protocol.

def counter(low, high):
    current = low
    while current < high:
        yield current
        current += 1

# Usage:
for c in counter(3, 9):
    print(c)

The above code produces the same output as the Counter class.

Additional Resources

For a comprehensive understanding of iterators, refer to resources like David Mertz's article "Iterators and Simple Generators."

The above is the detailed content of How Do I Create and Use Iterators in Python?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn