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:

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 csvCode 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.