Python next() 函数
本帖最后由 一个账号 于 2020-3-21 12:21 编辑Python next() 函数
语法
next(iterator[, default])
参数
参数描述
iterator迭代器
default当没有下一个元素时返回该默认值。
描述
next() 函数用于获取迭代器的下一项。如果没设置 default 参数,又没有下一项元素则会触发 StopIteration 异常。
返回值
返回迭代器的下一项。
例子
>>> next() # 必须是迭代器
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
next()
TypeError: 'list' object is not an iterator
>>> iterator = iter()
>>> next(iterator)
1
>>> next(iterator)
2
>>> next(iterator)
3
>>> next(iterator)
4
>>> next(iterator) # 没有下一个元素了
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
next(iterator)
StopIteration
>>> next(iterator, "没有下一个元素了!")
'没有下一个元素了!' 本帖最后由 永恒的蓝色梦想 于 2020-4-10 18:27 编辑
一种可能的实现
def next(iterator,default=_no_arg,/):
if hasattr(iterator,'__next__') and callable(iterator.__next__):
if default is _no_arg:
return iterator.__next__()
try:
return iterator.__next__()
except StopIteration:
return default
else:
raise TypeError(f"'{iterator.__class__.__name__}' object is not an iterator")
页:
[1]