1

在解决以下使用关键字的问题时,我遇到了这些术语iterablesgeneratoryield :yield

问题:定义一个具有生成器的类,该生成器可以在给定范围 0 和 n 之间迭代可被 7 整除的数字。

解决方案:

def putNumbers(n):
    i = 0
    while i<n:
        j=i
        i=i+1
        if j%7==0:
            yield j
        for i in reverse(100):
            print i

我不明白为什么yield在这里使用。我已经通过这个来源也了解了。

并提出另一个问题,因为迭代器和生成器的代码都给出了相同的输出。

可迭代代码:

mylist = [x*x for x in range(3)]
for i in mylist:
    print(i)

生成器代码:

mygenerator = [x*x for x in range(3)]
for i in mygenerator:
    print(i)

那么有什么意义呢?

4

0 回答 0