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__()
StopIteration
exception.
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 aStopIteration
exception.
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 randint
Code 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) # StopIteration
Code 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) # None
Code 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:

import csv
with open('country.csv', encoding='utf8') as f:
csv_reader = csv.reader(f)
# skip the header
next(csv_reader)
# iterate over the data line
for line in csv_reader:
print(line)
Code language: Python (python)
How it works.
First, import the csv module:
import csv
Code language: Python (python)
Second, open the country.csv file and return the reader object from the csv.reader()
function. The reader object is an iterator.
with open('country.csv', encoding='utf8') as f:
csv_reader = csv.reader(f)
#...
Code language: Python (python)
Third, call the next()
function to retrieve the header from the csv_reader iterator:
next(csv_reader)
Code language: Python (python)
Finally, display all the data lines:
for line in csv_reader:
print(line)
Code language: Python (python)
Summary #
- Use the Python
next()
function to get the next item from an iterator.