私はこの試みた:なぜmyList = [範囲(1,10)]はPythonでリストを返しませんか?
myList = [range(1,10)]
print(myList)
を、この出力ました:
range(1, 10)
それはリスト[1,2,3,4,5,6,7,8,9を返さなかった理由を]?
私はこの試みた:なぜmyList = [範囲(1,10)]はPythonでリストを返しませんか?
myList = [range(1,10)]
print(myList)
を、この出力ました:
range(1, 10)
それはリスト[1,2,3,4,5,6,7,8,9を返さなかった理由を]?
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
注意を、コードをフォーマットするために、それを4つのスペースでインデントします。 – Carcigenicate