2017-09-10 1 views

答えて

1

Python3でこの例を実行しています。ここでは、range関数が反復可能性を返します。そのため、あなたは完全なリストを与える表現を強制的にlist関数にジェネレータを渡す必要があります:

l = list(range(10)) 

出力:ジェネレータで

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 

を、あなたはそうのようにそれを反復処理することができます。

for i in function_that_yields_generator(): 
     #do something 

また、発電機から要素を取得する機能next()を使用することができます。レンジ機能が反復可能ではないイテレータがあるので、あなたは、この使用することができます:イテレータについて

l = range(10) 
new_l = iter(l) 
>>next(new_l) 
0 
>>next(new_l) 
1 
>>next(new_l) 
2 

を、あなたがこれを行うことができます:

>>s = function_that_yields_generator() 
>>next(s) 
#someval1 
>>next(s) 
#someval2 
+0

私はPythonには新しいので、私はあなたの答えから取得しています...ジェネレータでは、関数によって再度呼び出される必要があるか、またはループで使用されなければならないということですか? –

+0

@mohitkaushik最近の私の編集をご覧ください。また、この回答があなたに役立った場合は、それを受け入れることを検討してください。ありがとう! – Ajax1234

+0

@AnthonySottileそれを指摘してくれてありがとう。今は修正されています。 – Ajax1234

関連する問題