Python next() 函数用法

2023-09-17 22:26:46

next() 方法通过调用其 __next__() 方法从迭代器返回下一项。

next() 语法:

next(iterator, default)

参数:

  1. 迭代器:使用 iter function 创建的迭代器对象。
  2. default:(可选)迭代器用尽时返回的默认值。

返回值:

返回迭代器中的下一个值。如果已返回最后一个值,则返回指定的默认值,如果未指定默认值,则引发StopIteration错误。

下面的示例使用 next() 方法从迭代器中检索项。

nums = [1,2,3,4,5]
numitr = iter(nums)
print(next(numitr)) # prints 1
print(next(numitr)) # prints 2
print(next(numitr)) # prints 3
print(next(numitr)) # prints 4
print(next(numitr)) # prints 5
print(next(numitr)) # raise StopIteration error

输出:

1
2
3
4
5
Traceback (most recent call last):
File "<pyshell#152>", line 1, in <module>
print(next(numitr))
StopIteration

上面,在从集合返回所有值后调用next(numitr)会引发StopIteration错误。若要避免此错误,可以将默认值作为参数传递。

nums = [1,2,3,4,5]
numitr = iter(nums)
print(next(numitr, 0)) # prints 1
print(next(numitr, 0)) # prints 2
print(next(numitr, 0)) # prints 3
print(next(numitr, 0)) # prints 4
print(next(numitr, 0)) # prints 5
print(next(numitr, 0)) # prints 0
print(next(numitr, 0)) # prints 0
print(next(numitr, 0)) # prints 0
print(next(numitr, 0)) # prints 0

输出:

1
2
3
4
5
0
0
0
0