跳到主要内容

Python next() 函数

next() 函数返回迭代器中的下一个项目。

示例

marks = [65, 71, 68, 74, 61]

# 将列表转换为迭代器
iterator_marks = iter(marks)

# 下一个元素是第一个元素
marks_1 = next(iterator_marks)
print(marks_1)

# 查找下一个元素,即第二个元素
marks_2 = next(iterator_marks)
print(marks_2)

# 输出: 65
# 71

next() 语法

next() 的语法是:

next() 参数

  • iterator - next() 从迭代器中检索下一个项目
  • default(可选) - 如果迭代器耗尽(没有下一个项目),则返回此值

next() 返回值

  • next() 函数返回迭代器中的下一个项目。
  • 如果迭代器耗尽,它返回作为参数传递的 default 值。
  • 如果省略 default 参数并且迭代器耗尽,它会引发 StopIteration 异常。

示例 1:获取下一个项目

random = [5, 9, 'cat']

# 将列表转换为迭代器
random_iterator = iter(random)
print(random_iterator)

# 输出: 5
print(next(random_iterator))

# 输出: 9
print(next(random_iterator))

# 输出: 'cat'
print(next(random_iterator))

# 这将引发错误
# 迭代器已耗尽
print(next(random_iterator))

输出

<list_iterator object at 0x7feb49032b00>
5
9
cat
Traceback (most recent call last):
File "python", line 18, in <module>
StopIteration

列表是一个 iterable,你可以通过使用 Python 的 iter() 函数从中获取它的 iterator

了解更多关于

在上述程序的最后一个语句中,我们得到了一个错误,因为我们试图在没有下一个项目可用(迭代器已耗尽)时获取下一个项目。

在这种情况下,你可以将默认值作为第二个参数给出。

示例 2:向 next() 传递默认值

random = [5, 9]

# 将列表转换为迭代器
random_iterator = iter(random)

# 输出: 5
print(next(random_iterator, '-1'))

# 输出: 9
print(next(random_iterator, '-1'))

# random_iterator 已耗尽
# 输出: '-1'
print(next(random_iterator, '-1'))
print(next(random_iterator, '-1'))
print(next(random_iterator, '-1'))

输出

5
9
-1
-1
-1

注意: 在内部,next() 调用了 __next__() 方法。