とぎぷろべい

包丁研ぎとプログラミングと米国株投資についてのなんやかんや

enumerate関数について(Python)

f:id:feci:20210726231508j:plain

Python3

 

Python3.8.5でのenumerate関数について。

#①enumerate関数を使わない場合
i = 0
for hiragana in ['あい''うえ''お']:
  print(ihiragana)
  i += 1


#②enumerate関数を使った場合
for ihiragana in enumerate(['あい''うえ''お']):
  print(ihiragana)


#③リストなしでenumerate関数を使った場合
for ihiragana in enumerate('かきくけこ'):
  print(ihiragana)

 

enumerate関数は、①のfor文でやろうとしていることをもうちょっとスマートに記述するために使う関数です。

どういう処理になるのかは、実際に出力された値を見ていったほうがわかりやすいと思います。

 

上のプログラムを処理すると、それぞれ以下のように出力されます。

 

①の出力結果

0 あい
1 うえ
2 お

 

②の出力結果

0 あい
1 うえ
2 お

 

③の出力結果

0 か
1 き
2 く
3 け
4 こ

 

 

上記のように、enumerate関数を使うとfor文のなかの処理を1回まわすごとに、0からはじまる連続した数値が変数iのなかに自動で上書きされていきます。

この場合の変数iに格納される数値の終端は、enumerate(パラメータ);で指定したパラメータの総数と同じものになります。

 

なので②の場合はリストとして3つの値がパラメータに指定されているので、変数iには0、1、2の順に数値が格納されていきます。

 

③の場合は5つの文字がパラメータとして指定されているので、0から4までの5つの数値が0から順に変数iに格納されていきます。

 

 

ちなみに、出力結果にある0や1などの数値とその後ろに出力される文字列の間にある半角スペースの存在は、たぶんPythonの仕様です。

この半角スペースは、おそらく削除することはできません。

 

 

以上です。