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
Release: 2024-12-29 17:33:11
Original
264 people have browsed it

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)
Copy after login

This will produce the following output:

3
4
5
6
7
8
Copy after login

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)
Copy after login

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!

source:php.cn
Statement of this Website
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
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template