next()函数从迭代器返回下一项。
next()的语法为:
next(iterator, default)
iterator- next()从迭代器中检索下一项
default (可选)-如果迭代器已用尽,则返回此值(没有下一项)
next()函数从迭代器返回下一项。
如果迭代器已用尽,则返回default作为参数传递的值。
如果省略默认(default)参数,并且迭代器(iterator)已用尽,则会引发StopIteration异常。
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)) # 这会引起错误 # 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
列表是 可迭代的,您可以使用Python中的iter()函数从中获取其 迭代器。
学习更多关于
我们从上述程序的最后一条语句中得到了一个错误,因为我们试图在没有下一项可用时(迭代器已用尽)来获取下一项。
在这种情况下,您可以提供默认值作为第二个参数。
random = [5, 9] # 将列表转换为迭代器 random_iterator = iter(random) # 输出: 5 print(next(random_iterator, '-1')) # 输出: 9 print(next(random_iterator, '-1')) # random_iterator is exhausted # 输出: '-1' print(next(random_iterator, '-1')) print(next(random_iterator, '-1')) print(next(random_iterator, '-1'))
输出结果
5 9 -1 -1 -1
注意:在内部,next()调用__next__()方法。