バリケンのPython日記 RSSフィード

2008-07-29

[] enumerate()関数  enumerate()関数 - バリケンのPython日記 を含むブックマーク はてなブックマーク -  enumerate()関数 - バリケンのPython日記  enumerate()関数 - バリケンのPython日記 のブックマークコメント

シーケンスのすべての要素に対してインデックスつきで何らかの処理を行いたい場合、以前の例ではrange()とlen()を組み合わせて実現したけど、実はenumerate()関数でも実現できるよ。

>>> for i, v in enumerate(['tic', 'tac', 'toe']):
...   print i, v
...
0 tic
1 tac
2 toe
>>>

enumerate()関数も昨日のiteritems()メソッド同様、外部イテレータオブジェクトが返るよ。

>>> enumerate(['tic', 'tac', 'toe'])
<enumerate object at 0x01C76C38>
>>>

Rubyと違って、まず外部イテレータオブジェクトを生成して、それに対してforを使ってループを抽象化する、というのがPython流なのかな。

トラックバック - http://python.g.hatena.ne.jp/muscovyduck/20080729