PythonのリストをループとIF文、enumerate関数でサザエさんキャラを取り出してみた。

この記事を読むことで、Pythonのリストを単純にループを使って取り出す方法とenumerate関数を使って取り出す方法が学べます。

具体例として使うのは、国民的アニメのサザエさんです。
その中から4人の名前をcharacterというリストにこの様に格納しました。

character=[‘波平’,’サザエ’,’カツオ’,’タマ’]

リストの添え字は「0(ゼロ)」から始まります。
このリストの場合、末尾は3です。

このリストの添字0の波平さん、添字1のサザエさん、添字2のカツオまでが「磯野家の人たち」で、添字3のタマが「ペット」です。

そこで、jobという変数を用意して、添え字が3のタマの場合のみ職業を「ペット」にして、それ以外でしたら「磯野家の人たち」と表示する様にプログラミングしました。
シンプルなIF文による分岐をしています。

#サザエさんのキャラクターのリスト
character=['波平','サザエ','カツオ','タマ']

#ループを使ってリストを取り出す
#iが3のタマの職業を「ペット」にする
for i in range(len(character)):
  if i==3:
    job='ペット'
  else:
    job='磯野家の人たち'
  print(job,character[i])

実行結果です。

ループのところでlen関数を使ってリストの長さを求めて、その分繰り返すように指定しておりますが、この部分に直接配列自体を書くことも可能です。
ただそうすると、リストの添字i=3の時のキャラクターの職業を「ペット」にするといった、添字による分岐が出来なくて困りますよね。

そこで登場するのがenumerate関数です。
enumerateを使うことによって、リストの添字i=0,1,2,3とリストの中身のキャラクターを同時に扱えます。

コードを改変します。

#サザエさんのキャラクターのリスト
character=['波平','サザエ','カツオ','タマ']

#ループを使ってリストを取り出す
#iが3のタマの職業を「ペット」にする
for i,member in enumerate(character):
  if i==3:
    job='ペット'
  else:
    job='磯野家の人たち'
  print(job,member)

このように書き換えられます。
これで実行すると、先ほどと同じ結果が得られます。

更に最後のprint文を変更して、実行結果に表示する日本語を、より伝わりやすく改変することも可能です。

str(i)としているのは、数値を文字と一緒にprint文内に表記する為です。

#サザエさんのキャラクターのリスト
character=['波平','サザエ','カツオ','タマ']

#ループを使ってリストを取り出す
#iが3のタマの職業を「ペット」にする
for i,member in enumerate(character):
  if i==3:
    job='ペット'
  else:
    job='磯野家の人たち'
  print('家族No.'+str(i)+member+'さんは、「'+job+'」です。')

実行結果です。

この様に、enumerate関数を使うと自在に表記できるので便利です。
ループ、リストとセットで私も頑張って覚えます。

ご精読ありがとうございました。

投稿者: nekosiestr

プログラミング学習中のロスジェネ(就職氷河期世代)の発達障害者です。 宜しくお願いします。 趣味で写真を撮っています。 プログラミングは、GAS/HTML/CSS/JavaScript/jQuery/PHP、 発達障害は、自閉症スペクトラムASD/ADHD、その他双極性障害やHSP(5人に1人の繊細さん)などの生きづらさを抱えておりますが、それでも楽しく生きて行きたいです!! 写真は、以前はコンパクトデジカメ、現在は、OLYMPUSミラーレス一眼を使っています。