Pythonにおけるenumerate()関数の使い方

1134 ワード

いくつかの簡単な例を見てみましょう
>>> for i,j in enumerate(('a','b','c')):
 print i,j
 
0 a
1 b
2 c
>>> for i,j in enumerate([1,2,3]):
 print i,j
 
0 1
1 2
2 3
>>> for i,j in enumerate({'a':1,'b':2}):
 print i,j
 
0 a
1 b
>>> for i,j in enumerate('abc'):
 print i,j
 
0 a
1 b
2 c

enumerateの定義を見てみましょう.
def enumerate(collection): 
  'Generates an indexed series: (0,coll[0]), (1,coll[1]) ...'   
   i = 0 
   it = iter(collection) 
   while 1: 
   yield (i, it.next()) 
   i += 1

Enumerateは、配列またはリストをインデックスシーケンスにします.インデックスとインデックスの内容を再取得するときに便利になります.
cookbookでは、ファイルの行数を計算する場合は、次のように書くことができます.
count = len(open(thefilepath,'rU').readlines())

前述の方法は簡単ですが、ファイルが大きい場合は動作しない場合もあります.次のようなループ読み取りの方法が適切です.
Count = 0 
For count,line in enumerate(open(thefilepath,'rU')): 
	Pass
	Count += 1