Iterator , Iterable and Iteration with Examples
- Iterable
- Iterator
- Iteration
- Traverse/Iterate over list (Iterable) using Iterator
- Iterate over an Iterable (list) using for loop
- Python Iter() function
- Python next() function
1)Iterable
Iterable is a type of object that is made up of other components. Iterables include things like list and tuple. It’s identical to any Java collection class or C++ container class. When the iter() function on an Iterable object is called in Python, an Iterator is returned, which can be used to iterate over the elements inside Iterable.
If a class has overloaded the magic method __iter__() in Python, it is called Iterable. The Iterator object must be returned by this feature.
2)Iterator
In Python, an iterator is an entity that iterates over iterable objects such as lists, tuples, dicts, and sets. The iter() method is used to create the iterator item. It iterates using the next() form.
The iterator’s initialization is handled by the __iter(iterable)__ process. Next ( __next__ in Python 3) returns an iterator item. The iterable’s next value is returned by the next process. When we use a for loop to traverse some iterable object, it uses the iter() method to obtain an iterator object, which we then iterate over using the next() method. To signal the end of the iteration, this method raises a StopIteration.
3)Iteration
Iteration is the method of looping through all of the elements of an Iterable with the help of an Iterator object. We can iterate in Python using for loops or while loops.
4)Traverse/Iterate over list (Iterable) using Iterator
Since the __iter__() feature, which returns an Iterator, has been overloaded in Python, List is an Iterable item. The iter() function is used to get the Iterator object from an Iterable object. From the list, let’s get the Iterator object.
Since the __next__() function is overloaded, it returns a list iterator object, which is essentially an Iterator. You may also look at the Iterator form that was returned.
Let’s use this iterator object to loop through the contents of the list.
Below is the implementation:
# given list givenlist = ["hello", "this", "is", "BTechGeeks"] # getting the iterator of the list itrlist = iter(givenlist) # Traverse the list using iterator while True: try: # getting next element in the list using next() element = next(itrlist) print(element) except StopIteration: break
Output:
hello this is BTechGeeks
Explanation:
Call the next() function on the Iterable’s iterator object to get the next value. It will return the Iterable’s next value. To get all elements of iterable one by one, keep calling this next() function. When the iterator reaches the end of the iterable’s components, the StopIteration error is thrown.
As previously said, the next() function is similar to Python’s hasnext() function. It is used to get the Iterable’s next value.
5)Iterate over an Iterable (list) using for loop
Python has a fantastic for loop that iterates over the Iterable object using Iterator. For example, we can use the for loop to iterate over the elements in a list (Iterable).
Internally, the for loop does the same thing, retrieving the Iterator from Iterable and using it to iterate over the elements in Iterable. However, it offers a short hand form; we don’t need to write a large while loop or catch StopIteration errors ourselves because it handles everything internally.
We may iterate over other Iterables as well, such as list, tuple, and custom Iterators.
Below is the implementation:
# given list givenlist = ["hello", "this", "is", "BTechGeeks"] # traverse the list using for loop for element in givenlist: print(element)
Output:
hello this is BTechGeeks
6)Python Iter() function
When the iter() function is called, the passed object is passed to the __iter__() function, which returns the value received by it. Iterable refers to a class that has an overloaded __iter__() function and is supposed to return an Iterator object.
7)Python next() function
When the next() function is called, the passed object is passed to the __next__() function, which returns the value returned by it. Iterator objects, in essence, overload the __next__() function, returning the next value from the corresponding Iterable item.
Related Programs:
- python open a file using open with statement and benefits explained with examples
- python break keyword explained with examples
- python list comprehension vs generator expression explained with examples
- python for loop explained with examples
- how to code a scraping bot with selenium and python
- python how to create a list and initialize with same values
- python dictionary update function tutorial and examples