Python next() method (original) (raw)

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))

`

**Explanation:

Syntax

next(iterator, default)

**Parameters:

**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)

`

**Explanation:

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:

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"))

`

**Explanation:

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)
:6 in
----> 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:

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:

Applications: