一丧:别害怕,反正都会后悔的
认识迭代器一定要认识一个单词yield。
yield是什么意思?在笔者认为它就是一个暂停并输出的意思,当再次调用时从暂停处继续执行代码到达下一个暂停并输出。
我们来看一个简单的代码吧。
def shuchu(num):
for n in range(num):
yield n
f = shuchu(5)
print(next(f))
print(next(f))
print(next(f))
print(next(f))
print(next(f))
print(next(f))
它的输出为:
但是如果我们超出范围会怎么样呢?
它会给我们报如下错误:
大家思考一下,每次都使用next()是不是太麻烦了,一点也不优雅。可是不用next我们用什么呢?诶,没错,我们用循环去遍历它呀。
def shuchu(num):
for n in range(num):
yield n
f = shuchu(5)
for n in f:
print(n)
它的输出如下:
好的,以上就是迭代器的基本使用用法。