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た。私も理解するためにこのソースを調べました。

iterables と generators の両方のコードが同じ出力を与えるため、もう1つ質問します。

イテラブルのコード:

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