Open In App

Python next() method

Last Updated : 19 Dec, 2025
Comments
Improve
Suggest changes
8 Likes
Like
Report

The next() function returns the next item from an iterator. If there are no more items, it raises a StopIteration error, unless you provide a default value. It is useful when you want to get items one by one manually.

Note: next() is ideal for unknown-length iterators or when a default value is needed. For known-length sequences, for loops are faster and simpler.

Example:

Python
lst = [1, 2, 3]
it = iter(lst)  
print(next(it)) 

Output
1

Explanation:

  • lst is a list of items.
  • it = iter(lst): creates an iterator over the list.
  • next(it): returns the first item (1) from the iterator.

Syntax

next(iterator, default)

Parameters:

  • iterator: An iterator object to get the next item from.
  • default: (Optional) Value returned if the iterator is exhausted. If not provided, StopIteration is raised.

Return: The next element from the iterator or the default value.

Example 1: Iterating a List Using next()

This example shows how to iterate over a list using next(). Using a default value prevents the StopIteration exception when the iterator is exhausted.

Python
lst = [1, 2, 3]
it = iter(lst)

while True:
    item = next(it, "end") 
    if item == "end":
        break
    print(item)

Output
1
2
3

Explanation:

  • iter(lst): creates an iterator from the list.
  • next(it, "end"): fetches the next item or "end" if there are no more items.

Example 2: Getting the Next Item from an Iterator

Here, next() is called sequentially to retrieve elements one by one.

Python
lst = [1, 2, 3, 4, 5]
it = iter(lst)

print("First item in List:", next(it))   
print("Second item in List:", next(it))  

Output
First item in List: 1
Second item in List: 2

Explanation:

  • Each call to next(it) returns the next element of the iterator.
  • The iterator remembers its current position, so successive calls continue from the last element.

Example 3: Using a Default Value with next()

Passing a default value ensures that a custom message or value is returned instead of raising a StopIteration error.

Python
lst = [1]
it = iter(lst)

print(next(it))
print(next(it, "No more element"))

Output
1
No more element

Explanation:

  • The first call returns the only element.
  • The second call returns "No more element" because the iterator is exhausted.

Example 4: StopIteration Exception

Calling next() beyond the iterator's length without a default value raises a StopIteration exception.

Python
it = iter([1, 2])

print("Next Item:", next(it)) 
print("Next Item:", next(it))  
print("Next Item:", next(it))

Output

Next Item: 1
Next Item: 2

---------------------------------------------------------------------------
StopIteration Traceback (most recent call last)
<ipython-input-1>:6 in <module>
----> 6 print("Next Item:", next(it))
StopIteration

While calling out of the range of the iterator then it raises the Stopiteration error, to avoid this error we will use the default value as an argument.

Explanation:

  • print("Next Item:", next(it)): The first two calls fetch elements normally.
  • The third call raises StopIteration because the iterator has no more items.
  • To avoid this, always provide a default value when unsure of the iterator size.

Example 5: Performance Comparison

next() allows fine control of iteration but is slower than a Python for loop when iterating over known sequences.

Python
import timeit
setup = "lst = list(range(1000))"

t1 = timeit.timeit(
    "it = iter(lst)\n"
    "while True:\n"
    "    x = next(it, None)\n"
    "    if x is None: break",
    setup=setup,
    number=5
)
t2 = timeit.timeit(
    "for _ in lst: pass",
    setup=setup,
    number=5
)

print("next() time:", t1)
print("for loop time:", t2)

Output
next() time: 0.00021808600013173418
for loop time: 4.387100011626899e-05

Explanation:

  • setup creates a list of 1000 numbers.
  • t1 measures the time to iterate using iter() + next() inside a while loop.
  • t2 measures the time to iterate using a normal for loop.
  • Both tests run 5 times.

Applications:

  • Iterating over iterators when the container size is unknown.
  • Controlling iteration flow with default values.
  • Safely handling exhausted iterators without exceptions.

Explore

Morty Proxy This is a proxified and sanitized view of the page, visit original site.