Python next() 函数



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

示例 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

示例 4

我们还可以通过提供“default 值”作为参数以及迭代器对象来避免异常,如以下示例所示 -


capitals = {"Telangana":"Hyderabad", "Tamilnadu":"Chennai"}
it = iter(capitals)
print (next(it))
print (next(it))
print (next(it, "Delhi"))

输出

上述程序生成以下输出 -

Telangana
Tamilnadu
Delhi