この記事を読むことで、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関数を使うと自在に表記できるので便利です。
ループ、リストとセットで私も頑張って覚えます。
ご精読ありがとうございました。