Table of Contents
The Python iter() function returns an iterator for the given object.
The iter()
function creates an object which can be iterated one element at a time.
These objects are useful when coupled with loops like for loop, while loop.
The syntax of the iter()
function is:
iter(object, sentinel)
1. iter() Parameters
The iter()
function takes two parameters:
- object – object whose iterator has to be created (can be sets, tuples, etc.)
- sentinel (optional) – special value that is used to represent the end of a sequence
2. Return value from iter()
- The
iter()
function returns an iterator object for the given object. - If the user-defined object doesn’t implement
__iter__()
, and__next__()
or__getitem()__
, theTypeError
exception is raised. - If the sentinel parameter is also provided,
iter()
returns an iterator until the sentinel character isn’t found.
3. Example 1: Working of Python iter()
# list of vowels vowels = ['a', 'e', 'i', 'o', 'u'] vowels_iter = iter(vowels) print(next(vowels_iter)) # 'a' print(next(vowels_iter)) # 'e' print(next(vowels_iter)) # 'i' print(next(vowels_iter)) # 'o' print(next(vowels_iter)) # 'u'
Output
a e i o u
4. Example 2: iter() for custom objects
class PrintNumber: def __init__(self, max): self.max = max def __iter__(self): self.num = 0 return self def __next__(self): if(self.num >= self.max): raise StopIteration self.num += 1 return self.num print_num = PrintNumber(3) print_num_iter = iter(print_num) print(next(print_num_iter)) # 1 print(next(print_num_iter)) # 2 print(next(print_num_iter)) # 3 # raises StopIteration print(next(print_num_iter))
Output
1 2 3 Traceback (most recent call last): File "", line 23, in File "", line 11, in __next__ StopIteration
5. Example 3: iter() with sentinel parameter
class DoubleIt: def __init__(self): self.start = 1 def __iter__(self): return self def __next__(self): self.start *= 2 return self.start __call__ = __next__ my_iter = iter(DoubleIt(), 16) for x in my_iter: print(x)
Output
2 4 8
Here, we have implemented a custom iterable object without a StopIteration
condition.
However, we can use the iter()
method with the sentinel
parameter to stop the iteration. If the value returned from __next__()
is equal to sentinel
, StopIteration
will be raised, otherwise, the value will be returned.
Recommended Reading: Python Iterators
Related posts:
Python Dictionary update()
Python Program to Add Two Numbers
Python Dictionary items()
Python Set union()
Python String isidentifier()
Python strptime()
Python String expandtabs()
Applied Text Analysis with Python - Benjamin Benfort & Rebecca Bibro & Tony Ojeda
Python Set intersection()
Python for Loop
Python setattr()
Python Set issubset()
Python tuple()
Python Program to Sort Words in Alphabetic Order
Introduction to Machine Learning with Python - Andreas C.Muller & Sarah Guido
Python Program to Catch Multiple Exceptions in One Line
Python filter()
Python all()
Python Iterators
Python Set copy()
Python Functions
Python Program to Multiply Two Matrices
Python String rjust()
Python map()
Python vars()
Python Machine Learning Cookbook - Practical solutions from preprocessing to Deep Learning - Chris A...
Python Program to Represent enum
Python Dictionary keys()
Python exec()
Python float()
Python Program to Access Index of a List Using for Loop
Python String isalpha()