Summary: in this tutorial, you’ll learn how to use the Python next() function and how to use it to retrieve the next item from an iterator.
Introduction to the Python next() function #
An iterator is an object that implements the iterator protocol which consists of two methods:
__iter__()method that returns the iterator object itself.method that returns the next item. If all items have been returned, the__next__()method raises a__next__()StopIterationexception.
The next() function get the next item from an iterator by calling its __next__() method.
Here’s the syntax of the next() function:
next(iterator[, default])Code language: Python (python)The next() function has two parameters:
iterator– this required argument specifies an iterator from which you want to retrieve the next item.default– this is an optional argument. Thenext()function returns the default if the iterator is exhausted; otherwise, it’ll raise aStopIterationexception.
Python next() function examples #
Let’s take some examples of using the next() function.
1) Using Python next() function with an iterator example #
The following example defines an iterator that returns a number of random numbers between min and max and uses the next() function to get the next random number from the iterator:
from random import randint
def random_seq(min, max, size):
for _ in range(0, size):
yield randint(min, max)
random_numbers = random_seq(1, 100, 3)
r = next(random_numbers)
print(r)
r = next(random_numbers)
print(r)
r = next(random_numbers)
print(r)Code language: Python (python)How it works.
First, import the randint() function from the built-in random module:
from random import randintCode language: Python (python)Second, define a generator that returns a number of random integers between min and max:
def random_seq(min, max, size):
for _ in range(0, size):
yield randint(min, max)Code language: Python (python)Third, call the random_seq function:
random_numbers = random_seq(1, 100, 3)Code language: Python (python)The random_numbers is a generator which is also an iterator.
Fourth, call the next() function three times to get the next item from the random_numbers iterator:
r = next(random_numbers)
print(r)
r = next(random_numbers)
print(r)
r = next(random_numbers)
print(r)Code language: Python (python)It should display three random numbers between 1 and 100.
If you call the next() function one more time, you’ll get a StopIteration exception:
r = next(random_numbers) # StopIterationCode language: Python (python)However, if you use a default value, the next() function will return that value instead of raising the StopIteration exception:
r = next(random_numbers, None)
print(r) # NoneCode language: Python (python)2) Using Python next() function to skip heading when reading a csv file #
The following example uses the built-in csv module to read the country.csv file with the following information: