0
をITER機能を使う:私は以下を使用すると、次の関数内
s = 'hello'
for i in range(0,len(s)):
print next(iter(s))
コードはちょうどh
5回を印刷します。 しかしとき:
s = 'hello'
s_iterable = iter(s)
for i in range(0,len(s)):
print next(s_iterable)
hello
からのすべての文字が印刷されます。
どちらの場合でも、iter(s)
とs_iterable
はイテレータオブジェクトですが、なぜ私は異なる結果をもたらしますか?
'のインデックスの範囲(len(anything)):'はほとんどの場合間違いです--- Pythonはあなたのために忙しい作業をすべて行います。あなたのループは 'for char in string:print char'のように単純なものにすることができます。 Ned Batchelderの「[Loop Like a Native](http://nedbatchelder.com/text/iter.html)」(30分[PyCon US 2013からのビデオ](https://www.youtube.com/watch? v = EnSu9hHGq5o))を使用して、このような多くのケースを処理するための簡単な方法(「Python」)です。 –