リストを反復処理するPythonのfor
ループでは、次のように書くことができます。
for item in list:
print item
そしてそれはきちんとリストのすべての要素を通り抜けます。ループ内でこれまで何回ループしたかを知る方法はありますか?例えば、私はリストを取りたいのですが、私は10個の要素を処理した後にそれらで何かをしたいのです。
私が考えた代替案は、次のようなものです。
count=0
for item in list:
print item
count +=1
if count % 10 == 0:
print 'did ten'
または
for count in range(0,len(list)):
print list[count]
if count % 10 == 0:
print 'did ten'
これまでの反復回数を取得するためのより良い方法(for item in list
のように)はありますか?
Pythonicの方法は enumerate
を使うことです。
for idx,item in enumerate(list):
Nickに同意してください。これはもっと複雑なコードです。
#count=0
for idx, item in enumerate(list):
print item
#count +=1
#if count % 10 == 0:
if (idx+1) % 10 == 0:
print 'did ten'
私はあなたのコードでcount変数をコメントアウトしました。
itertools.count([n])
を使ってみてください
私はどちらかといえば古い質問を知っていますが……他のものを見て遭遇したので、私は自分の写真を撮ります。
[each*2 for each in [1,2,3,4,5] if each % 10 == 0])