Geek Slack

Introduction to Python
    About Lesson



    Python Iterators


    Python Iterators

    An iterator is an object that allows iteration over a sequence of elements. It implements the iterator protocol, which consists of the __iter__() and __next__() methods.

    1. Creating an Iterator

    To create an iterator in Python, you can use a class that implements the iterator protocol.

    Example:

    class MyIterator:
        def __iter__(self):
            self.n = 1
            return self
    
        def __next__(self):
            if self.n <= 5:
                result = self.n
                self.n += 1
                return result
            else:
                raise StopIteration
    
    my_iter = MyIterator()
    my_iter_iter = iter(my_iter)
    print(next(my_iter_iter))  # Output: 1
    print(next(my_iter_iter))  # Output: 2
    print(next(my_iter_iter))  # Output: 3
    print(next(my_iter_iter))  # Output: 4
    print(next(my_iter_iter))  # Output: 5
    # print(next(my_iter_iter))  # Raises StopIteration

    2. Using Iterators with Iterable Objects

    Many built-in Python objects are iterable and can be used with iterators.

    Example:

    my_list = [1, 2, 3, 4, 5]
    my_list_iter = iter(my_list)
    print(next(my_list_iter))  # Output: 1
    print(next(my_list_iter))  # Output: 2
    print(next(my_list_iter))  # Output: 3

    3. Using Iterators in Loops

    Iterators are commonly used in loops to iterate over elements of a sequence.

    Example:

    my_list = [1, 2, 3, 4, 5]
    for item in my_list:
        print(item)

    Conclusion

    Iterators are essential for iterating over sequences of elements in Python. Understanding how to create and use iterators is fundamental for working with iterable objects efficiently.