GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Python Tutorial
  • Data Types
  • Interview Questions
  • Examples
  • Quizzes
  • DSA Python
  • Data Science
  • NumPy
  • Pandas
  • Practice
  • Django
  • Flask
  • Iterators in Python
  • Python iter() method

This view

  • Original page
  • New address

GeezerVison is showing www.geeksforgeeks.org — Python next() method - GeeksforGeeks

geeksforgeeks
search icon
  • Courses
  • Tutorials
  • Interview Prep
  • Python Tutorial
  • Data Types
  • Interview Questions
  • Examples
  • Quizzes
  • DSA Python
  • Data Science
  • NumPy
  • Pandas
  • Practice
  • Django
  • Flask

Python next() method

Last Updated : 19 Dec, 2025

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.

Related Articles:

  • Iterators in Python
  • Python iter() method
Comment

Explore

    Python Fundamentals
    • Introduction1 min read
    • Input & Output2 min read
    • Variables4 min read
    • Operators4 min read
    • Keywords2 min read
    • Data Types4 min read
    • Conditional Statements3 min read
    • Loops3 min read
    • Functions4 min read
    Python Data Structures
    • String4 min read
    • List3 min read
    • Tuples3 min read
    • Dictionary3 min read
    • Set2 min read
    • Arrays5 min read
    Advanced Python
    • OOP Concepts3 min read
    • Exception Handling5 min read
    • File Handling4 min read
    • Python Database2 min read
    • MongoDB3 min read
    • MySQL7 min read
    • Packages4 min read
    • Modules3 min read
    • DSA Libraries5 min read
    • Python GUI2 min read
    Data Science with Python
    • Numpy3 min read
    • Pandas4 min read
    • Matplotlib3 min read
    • Seaborn3 min read
    • StatsModel2 min read
    • Model Building6 min read
    • TensorFlow2 min read
    • PyTorch5 min read
    Web Development with Python
    • Flask3 min read
    • Django5 min read
    • Django ORM4 min read
    • Jinja2 Templating5 min read
    • Django Templates5 min read
    • REST API3 min read
    • Build API with DRF4 min read
    Python Practice
    • Quiz1 min read
    • Practice Problems2 min read
    • Interview Q & A15+ min read
    Courses
    • Placement 360 Course2 min read
    • Data Science 360 Course2 min read
    • AI Engg Course2 min read
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.