カウンターを 1 から開始する必要があります。
for(counter, file) in enumerate(files):
counter += 1
//do stuff with file and counter
しかし、Python v2.4 にはもっと良い方法があるはずです。
カウンターを 1 から開始する必要があります。
for(counter, file) in enumerate(files):
counter += 1
//do stuff with file and counter
しかし、Python v2.4 にはもっと良い方法があるはずです。
ジェネレーターはこれに最適です。
def altenumerate( it ):
return ((idx+1, value) for idx, value in enumerate(it))
古いバージョンの python 用に簡略化されたもの:
def altenumerateOld( it ):
idx = 1
for value in it:
yield (idx, value)
idx += 1
の代わりにcounter += 1
、使用counter + 1
した場所を使用してくださいcounter
。
または:
for counter, file in ((i + 1, f) for i, f in enumerate(files)):
...
(Python 2.6 以降には優れた機能がいくつかあります。可能であればアップグレードしてみてください。)
の独自のバージョンを作成できますenumerate()
。
def enumerate_1based(iterable):
for index, item in enumerate(iterable):
yield index+1, item
または、引数を追加して、start
以降のバージョンの と同じように機能させますenumerate()
。
私はこのようにこれをしました:
#Emulate enumerate() with start parameter (introduced in Python 2.6)
for i,v in (i+start,v for i,v in enumerate(seq)):
//do stuff
基本的に、これは同じですが、自己完結型の構成です。
使用できますzip()
:
>>> enums = zip(range(1, len(files) + 1), files)
>>> for index, val in enums:
print index, val
for counter, item in enumerate(testlist):
print(counter+1)
print(item)