📅  最后修改于: 2020-09-20 04:21:23             🧑  作者: Mango
next()
的语法为:
next(iterator, default)
next()
从iterator
检索下一项next()
函数从迭代器返回下一项。 default
值。 default
参数,并且iterator
已用尽,则会引发StopIteration
异常。 random = [5, 9, 'cat']
# converting the list to an iterator
random_iterator = iter(random)
print(random_iterator)
# Output: 5
print(next(random_iterator))
# Output: 9
print(next(random_iterator))
# Output: 'cat'
print(next(random_iterator))
# This will raise Error
# iterator is exhausted
print(next(random_iterator))
输出
5
9
cat
Traceback (most recent call last):
File "python", line 18, in
StopIteration
列表是可迭代的 ,您可以使用Python的iter()
函数从中获取其迭代器 。
学习更多关于
我们从上述程序的最后一条语句中得到了一个错误,因为我们试图在没有下一项可用时(迭代器已用尽)来获取下一项。
在这种情况下,您可以提供default
值作为第二个参数。
random = [5, 9]
# converting the list to an iterator
random_iterator = iter(random)
# Output: 5
print(next(random_iterator, '-1'))
# Output: 9
print(next(random_iterator, '-1'))
# random_iterator is exhausted
# Output: '-1'
print(next(random_iterator, '-1'))
print(next(random_iterator, '-1'))
print(next(random_iterator, '-1'))
输出
5
9
-1
-1
-1
注意:在内部, next()
调用__next__()
方法。