web-dev-qa-db-ja.com

PythonのFORループ内でループカウントを取得する

リストを反復処理する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のように)はありますか?

210
greye

Pythonicの方法は enumerate を使うことです。

for idx,item in enumerate(list):
500
Nick Bastin

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変数をコメントアウトしました。

70
Vikram Garg

itertools.count([n])を使ってみてください

0
Andy

私はどちらかといえば古い質問を知っていますが……他のものを見て遭遇したので、私は自分の写真を撮ります。

[each*2 for each in [1,2,3,4,5] if each % 10 == 0])
0
hephestos