2012-01-27 14 views
3

Pythonのforループで反復カウンタにアクセスする方法はありますか?Pythonのforループで反復カウンタにアクセスする方法はありますか?

私は通常、自分の変数を使用して、どのループでもそれを増やします。より平凡な方法がありますか?

+0

カウンタはありません!さて、イテレータの中には数えられる配列のようなオブジェクトの特殊なケースがありますが、一般的にはそれは毎回次の値を提供することを要求するイテレータオブジェクトです。 – delnan

答えて

17

使用enumerate

sequence = [1, 45, 65, 7] 
for i, val in enumerate(sequence): 
    print i, val 

出力:

0 1 
1 45 
2 65 
3 7 
+0

素敵なトリック。ありがとう!新しいことを学びました。 –

3

だけでなく、あなたがenumerate組み込みを使用しますが、それはあまり知られていないオプションの二番目のパラメータを持つことができ、値がで起動するには:

f = open(...) 
for linenumber, line in enumerate(f, 1): 
    # etc. 

このようにすれば、要素をより自然に最初の要素でゼロになるのではなく、1つの場所を追加する必要があります。

関連する問題