には素敵なクラスがありますが、Enum
文字enum
列に対してのみ機能します。私は現在使用しています:
for index in range(len(objects)):
# do something with index and objects[index]
時期尚早の使用による最適な解決策ではないと思いますlen
。より効率的に行うにはどうすればよいでしょうか。
には素敵なクラスがありますが、Enum
文字enum
列に対してのみ機能します。私は現在使用しています:
for index in range(len(objects)):
# do something with index and objects[index]
時期尚早の使用による最適な解決策ではないと思いますlen
。より効率的に行うにはどうすればよいでしょうか。
このループを書く Pythonic の方法は次のとおりです。
for index, obj in enumerate(objects):
# Use index, obj.
enumerate
要素のタイプに関係なく、任意のシーケンスで機能します。組み込み関数です。
編集:
Python 2.5 を使用していくつかのテストを実行した後、少し遅いことがtimeit
わかりました。enumerate
>>> timeit.Timer('for i in xrange(len(seq)): x = i + seq[i]', 'seq = range(100)').timeit()
10.322299003601074
>>> timeit.Timer('for i, e in enumerate(seq): x = i + e', 'seq = range(100)').timeit()
11.850601196289062