静かなる名辞

pythonとプログラミングのこと


【python】pythonのenumerateの使い方

 pythonにはenumerateという便利なものがある。これを使うと、初心者のうちは書きがちなrange(len(list))のようなコードを改良できる。

 具体的には、以下のようなコードを想定している。

for i in range(len(lst)):
    element = lst[i]

 要するに何らかの理由でインデックス番号でforを回しているとき、range(len(lst))は冗長という話。
(このコードだけならfor element in lstでもいいけど、前後を見たいとかやりだすとけっきょくインデックスを使わないといけないことが多い)

 enumerateを使うと次のように書ける。

for i, element in enumerate(lst):
    ......

 文字列で確認してみる。

>>> for i, s in enumerate("hoge"):
...     print(i, s)
... 
0 h
1 o
2 g
3 e

 使いやすそう。

 enumerateは標準で使えるので(zipみたいな扱い)、特別に何かをimportする必要はない。そういうところも素敵。

 このように便利なenumerateだが、唯一欠点と言えるかもしれないのは、英語の苦手な日本人には名前が覚えづらいということだ。

 覚えるコツは「この関数なんかヌメヌメしてる」だ。enumerateを使うときは「ヌメヌメしてるなぁ」と思いながらローマ字でnumeと打つ。そうすればスペルを間違わない。