Python next() 函数用于遍历 Python 迭代器对象的内容,该对象表示数据流。如果您将迭代器对象传递给此函数,它将返回其中的下一项。您可以使用此函数并循环遍历 iterator 对象的所有元素。
next() 函数在内部调用给定迭代器对象的 __next__() 方法。如果在用尽 iterator 对象的元素后调用此函数,则会引发异常。
你可以提供 “default value” 和 iterator 对象。如果迭代器已用尽,则 next() 函数将返回指定的默认值,而不是引发 StopIteration 异常。
Python File 类方法提供了一个 next() 方法(在 python 3.x 中已弃用),它与此函数不同。此 next() 方法返回当前文件下一行的内容,而内置函数 next() 返回给定迭代器对象中的下一项。
语法
以下是 Python next() 函数的语法 -
next(iterator, default)
参数
以下是此函数的参数 -
- iterator: 这表示一个 Iterator 对象。
- default: 这表示在出现异常时要返回的默认值。
返回值
此方法返回给定迭代器对象的下一个元素。
示例 1以下是 Python next() 函数的基本示例 -
iterator = iter({163, 884, 992})
print (next(iterator))
输出
当我们运行上述程序时,它会产生以下结果——
992
示例 2
如上所述,当您尝试检索下一个元素并且对象中没有可用的元素时,此函数会生成 StopIteration 异常。
在以下示例中,我们创建了一个具有 4 个元素的迭代器对象,并调用了 next() 函数五次,您可以观察到它在上次迭代期间生成了异常。
iterator = iter({'Java', 'JavaFX', 'Coffee Script', 'OpenCV'})
print (next(iterator))
print (next(iterator))
print (next(iterator))
print (next(iterator))
print (next(iterator))
输出
如果我们编译并运行上面的程序,结果会产生如下 -
JavaFX
Java
OpenCV
Coffee Script
Traceback (most recent call last):
File "/home/cg/root/22791/main.py", line 6, in
print (next(iterator))
StopIteration
Java
OpenCV
Coffee Script
Traceback (most recent call last):
File "/home/cg/root/22791/main.py", line 6, in
print (next(iterator))
StopIteration
示例 3
现在,让我们尝试使用异常处理机制来避免异常。在这里,我们在循环中调用 next() 函数并使用 try-except 块处理异常 -
iterator = iter({'Java', 'JavaFX', 'Coffee Script', 'OpenCV'})
while True:
try:
contents = next(iterator)
print (contents)
except StopIteration:
break
输出
上述程序生成以下输出 -
JavaFX
Java
OpenCV
Coffee Script
Java
OpenCV
Coffee Script
示例 4
我们还可以通过提供“default 值”作为参数以及迭代器对象来避免异常,如以下示例所示 -
capitals = {"Telangana":"Hyderabad", "Tamilnadu":"Chennai"}
it = iter(capitals)
print (next(it))
print (next(it))
print (next(it, "Delhi"))
输出
上述程序生成以下输出 -
Telangana
Tamilnadu
Delhi
Tamilnadu
Delhi