Python Iterators: Understanding Iterables and Iterators in Python

← Back to Home

🔁 Python Iterators (Made Simple) 

Iterators are a way to go through all the elements in a collection (like a list or tuple), one item at a time. Python has built-in support for iterators, making it easy to loop through data.

If you've ever used a for loop in Python, you've already worked with iterators—even if you didn’t realize it!


✅ What Is an Iterator?

An iterator is an object that can be looped through (iterated over). It must follow two main rules:

  1. It must have a method called __iter__() → returns the iterator object itself.

  2. It must have a method called __next__() → returns the next item from the sequence.


📘 Example 1: Using an Iterator

my_list = [1, 2, 3]

# Get an iterator
my_iter = iter(my_list)

print(next(my_iter))  # Output: 1
print(next(my_iter))  # Output: 2
print(next(my_iter))  # Output: 3

🔍 Output:

1
2
3

If you call next() again after the list is finished, it will raise a StopIteration error.


🛠 Behind the Scenes of a For Loop

When we use a for loop like this:

for item in [1, 2, 3]:
    print(item)

Python automatically:

  • Calls iter() to get an iterator.

  • Calls next() repeatedly until StopIteration is raised.


🧱 Building a Custom Iterator

Let’s create our own iterator to return numbers from 1 to 5.

📘 Example 2: Custom Iterator

class MyNumbers:
    def __iter__(self):
        self.num = 1
        return self

    def __next__(self):
        if self.num <= 5:
            x = self.num
            self.num += 1
            return x
        else:
            raise StopIteration

# Create object
nums = MyNumbers()
my_iter = iter(nums)

for number in my_iter:
    print(number)

🔍 Output:

1
2
3
4
5

💡 Important Notes

  • iter() creates an iterator from an iterable (like a list or string).

  • next() returns the next value.

  • When there are no more items, StopIteration is raised to end the loop.

  • You can create custom iterators by defining __iter__() and __next__().


📘 Example 3: Iterating Over a String

Strings are also iterable!

my_str = "Hi"
my_iter = iter(my_str)

print(next(my_iter))  # Output: H
print(next(my_iter))  # Output: i

🔍 Output:

H
i

🎯 Conclusion

Iterators are a powerful tool in Python that let you go through items one at a time. Whether you’re working with lists, strings, or building custom sequences, understanding iterators helps us write clean and efficient code.


No comments:

Post a Comment

Featured Post

Add Keyboard Shortcuts to Tkinter GUI – Python Hotkeys with Bind Examples

  ← Back to Home ⌨️ Bonus Part 5: Keyboard Shortcuts & Hotkeys in Tkinter – Boost App Productivity 📘 Overview Keyboard shortcuts ...

Popular Posts