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 Program to Make a Flattened List from Nested List
Python Program to Print Output Without a Newline
Python Modules
Python Program to Get Line Count of a File
Python Program to Iterate Through Two Lists in Parallel
Python Variables, Constants and Literals
Python String isdigit()
Python Machine Learning Second Edition - Sebastian Raschka & Vahid Mirjalili
Machine Learning Mastery with Python - Understand your data, create accurate models and work project...
Python Program to Calculate the Area of a Triangle
Python Recursion
Applied Text Analysis with Python - Benjamin Benfort & Rebecca Bibro & Tony Ojeda
Python Program to Delete an Element From a Dictionary
Python String replace()
Python Program to Count the Occurrence of an Item in a List
Python Keywords and Identifiers
Python Program to Get the Last Element of the List
Python Program to Convert Kilometers to Miles
Python Dictionary
Python Functions
Python Function Arguments
Python super()
Python Program to Find Sum of Natural Numbers Using Recursion
Python String isnumeric()
Python Deep Learning Cookbook - Indra den Bakker
Python Dictionary fromkeys()
Python Program to Transpose a Matrix
Python Multiple Inheritance
Python Program to Return Multiple Values From a Function
Python String format()
Python String maketrans()
Python Program to Get a Substring of a String