以下のコードは、1〜5の範囲の数値を反復して、forEachInRangeThisNumberLoopThreeTimes
関数に数値を渡して呼び出します。この関数は数値を受け取り、各繰り返しを最後に返すnumbers
リストに3回追加してループします。returnの代わりにyieldを使用する方法
def forEachInRangeThisNumberLoopThreeTimes(number):
numbers = []
for each in range(number):
for i in range(3):
numbers.append(i)
return numbers
result = []
for number in range(1, 5):
print number, forEachInRangeThisNumberLoopThreeTimes(number)
:
1 [0, 1, 2]
2 [0, 1, 2, 0, 1, 2]
3 [0, 1, 2, 0, 1, 2, 0, 1, 2]
4 [0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2]
代わりに私がyield
を使用したいresult
変数にそれぞれ番号を付加する:
def forEachInRangeThisNumberLoopThreeTimes(number):
for each in range(number):
for i in range(3):
yield i
今、私が実行したとき:
for number in range(1, 5):
result = forEachInRangeThisNumberLoopThreeTimes(number)
を
result
は、私が期待するものではありません。
1 <generator object forEachInRangeThisNumberLoopThreeTimes at 0x104ebfaf0>
2 <generator object forEachInRangeThisNumberLoopThreeTimes at 0x104ebfaf0>
3 <generator object forEachInRangeThisNumberLoopThreeTimes at 0x104ebfaf0>
4 <generator object forEachInRangeThisNumberLoopThreeTimes at 0x104ebfaf0>
どこにエラーがありますか?