「サザエさん」のキャラで、Pythonの辞書をループを取り出す

この記事を読むことで、

・Pythonの辞書の「キー」及び「値」とは何か

・辞書自体をそのまま表示

・「辞書.items()」を使って、辞書をループを使って取り出す

といったことの理解が可能になります。

辞書の例として、国民的アニメの「サザエさん」のキャラクターの「職業をキー」に、「キャラクターを値」にしています。

辞書は{“キー”:”値” , “キー”:”値” ,・・・}の構造になっていて、サザエさんキャラを例にすると、{“大黒柱”:”波平” , “主婦”:”サザエさん”}などになります。

5人ぐらいで良いかな・・・と思って、こちらの5名を用意しました。
辞書の名前は「sazaesan」です。

sazaesan={"大黒柱":"波平","主婦":"サザエさん","小学生":"カツオ","幼児":"タラちゃん","ペット":"タマ"}

では、この記事本編で詳細を見ていきます。

この5人のキャラクターの、職業と名前を辞書を使ってループで取り出して見ます。
まず、print関数でシンプルに辞書自体を表示させてみます。

コードはこちらです。

#サザエさんキャラの辞書を作成
sazaesan={"大黒柱":"波平","主婦":"サザエさん","小学生":"カツオ","幼児":"タラちゃん","ペット":"タマ"}

#辞書自体を「そのまま」出力
print(sazaesan)

辞書を「そのまま」取り出した実行結果です。

う〜〜〜ん
取り出せましたけれど、ちょっと見づらいですよね。

そこで、今度はこの辞書をループを使って出力してみます。

コードに下記を追加します。
キーとなるのはjob:職業で、となるのはchara:キャラクター名として、forループで(job,chara)とすると、「大黒柱,波平」から、「ペット,タマ」までの全てのメンバーを取り出せます。

辞書.items():

を使って、キーであるjobと、であるcharaを取り出します。
まずは、そのループの部分はこちらになります。

#辞書.items()を使ってループで出力
for (job,chara) in sazaesan.items():
    print(job,chara)

ここまでのコードです。

#サザエさんキャラの辞書を作成
sazaesan={"大黒柱":"波平","主婦":"サザエさん","小学生":"カツオ","幼児":"タラちゃん","ペット":"タマ"}

#辞書.items()を使ってループで出力
for (job,chara) in sazaesan.items():
    print(job,chara)

実行結果です。

まぁ、これでも辞書の「キー」と「値」が表示されていますけれど、もう少し日本語の体裁を整えたいと思います。

下記のように日本語を整えて表示します。

print(job+”の、”+chara+”さんです。”)

とprint文を表記します。
ここまでのコードです。

最後に改行を入れております。(← 私が実行画面のスクショを綺麗に撮りたい為ですので、深い意味はございません m(_ _)m  )

#サザエさんキャラの辞書を作成
sazaesan={"大黒柱":"波平","主婦":"サザエさん","小学生":"カツオ","幼児":"タラちゃん","ペット":"タマ"}

#辞書.items()を使ってループで出力
for (job,chara) in sazaesan.items():
    print(job+"の、"+chara+"さんです。")

#改行
print()

実行結果です。

もう少し「キー」と「値」を見やすくしたいので、コードをこの様に書き換えます。

print(“【”+job+”】の、【”+chara+”】さんです。”)

ここまでのコードです。

#サザエさんキャラの辞書を作成
sazaesan={"大黒柱":"波平","主婦":"サザエさん","小学生":"カツオ","幼児":"タラちゃん","ペット":"タマ"}

#辞書.items()を使ってループで出力
for (job,chara) in sazaesan.items():
   print("【"+job+"】の、【"+chara+"】さんです。")

#改行
print()

これで、実行してみます。

最後に、「そのままの」辞書とループ取り出しの両方を書いて見ます。

print文に「\n」を入れて改行させています。
文字列と一緒に数値(辞書)を表示させる時は、この様にstrで囲います。

#辞書自体を出力
print('\n'+str(sazaesan)+'\n')

ここまでのコードです。

#サザエさんキャラの辞書を作成
sazaesan={"大黒柱":"波平","主婦":"サザエさん","小学生":"カツオ","幼児":"タラちゃん","ペット":"タマ"}


#辞書自体を出力
print('\n'+str(sazaesan)+'\n')


#辞書.items()を使ってループで出力
for (job,chara) in sazaesan.items():
   print("【"+job+"】の、【"+chara+"】さんです。")

#改行
print()

これで実行してみます。

改行のprint()、もう少しスッキリさせたいですよね。
なので、もうちょっと改変します。

最後までお読みいただきありがとうございました。

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関数を使うと自在に表記できるので便利です。
ループ、リストとセットで私も頑張って覚えます。

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

Pythonで辞書を使ってサザエさんのキャラクターを職業別に出力

この記事を読むことで、

・Pythonの辞書の基本的な作り方
・キーと値の指定の仕方
・次のデータの追加方法
・辞書から「キーを指定」して「値を取り出す方法」

が学べます。
また、Pythonでの標準入力の書き方の復習にも触れております。

この記事で作成する辞書の具体例として、国民的アニメ「サザエさん」のキャラクターを用います。

辞書は、「キー」と「値」で構成されているので、「{(波かっこ)}」で括って、下記のように記述します。

character_dic={‘大黒柱’:’磯野波平’}

で、この場合は【キー】が「大黒柱」で、【値】が「磯野波平」です。
キーと値は「:」で区切っています。

この辞書にあと1人だけ(私の推しキャラ!)を追加してみます。

character_dic={‘大黒柱’:’磯野波平’,’ペット’:’タマ’}

辞書は、「 ,(カンマ) 」で区切ることによって次のデータが入ります。
同様にして、他のキャラクターも追加して、辞書character_dicは、この様になりました。

character_dic={‘大黒柱’:’磯野波平’,’主婦’:’フグ田サザエ’,’小学生’:’磯野カツオ’,’幼児’:’タラちゃん’,’ペット’:’タマ’}

この辞書をそのまま出力するコードはこちらです。

#サザエさんのキャラクターの辞書
#職業を「キー」、名前を「値」
character_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'タラちゃん','ペット':'タマ'}

print(character_dic)

その実行結果です。

では、標準入力と単純なIF文を使って、少しアレンジをしていきたいと思います。

標準入力で、「d」と入力するとキー「大黒柱」が指定されて、値の「磯野波平」が出力されます。(ifの条件が真の時に該当)

「h」と入力するとキーに「housewife(主婦)」が指定されて値の「フグ田サザエ」を出力されます。(elifの条件が「h」の時に該当)

「e」と入力するとキーに「Elementary school student(小学生)」が指定されて値の「磯野カツオ」が出力されます。
(elifの条件が「e」の時に該当)

「p」と入力するとキーに「ペット」が指定されて「タマ」が出力されます。
(elifの条件が「p」の時に該当)

また、それ以外のテキトーな入力をすると、キーに「その他」が指定され、「伊佐坂先生」が出力されます。(elseに該当)

ここまでのコートを、かいつまんで解説すると、標準入力の直前に、

print(‘【d】大黒柱、【h】主婦、【e】小学生,【p】ペット 【記号】を入力>>>’,end=”)

と、書いています。
最後のend=”は、改行せずにこのメッセージの直後に【d】や【h】を入力できる様にしています。

標準入力は

job=input()

で、ここで【d】とか【h】などの文字を変数jobに格納します。

その後はIF文で分岐させています。

if job=='d':
    index='大黒柱'
elif job=='h':
    index='主婦'
elif job=='e':
    index='小学生'
elif job=='p':
    index='ペット'
else:
    index='その他'

その後にjobに入力された【d】や【h】がこのIF文による分岐で、indexに「大黒柱」や「主婦」などの辞書のキーが代入されます。

その代入されたindexを辞書のキーとして、キャラクター名を下記のprint文で出力しています。

print(character_dic[index])

辞書の最後に「伊佐坂先生」を加えました。

character_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'タラちゃん','ペット':'タマ','その他':'伊佐坂先生'}

では、これまでのコードと実行結果です。

#サザエさんのキャラクターの辞書
#職業を「キー」、名前を「値」
character_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'タラちゃん','ペット':'タマ','その他':'伊佐坂先生'}


#標準入力でキーを指定
print('【d】大黒柱、【h】主婦、【e】小学生,【p】ペット 【記号】を入力>>>',end='')
job=input()


#IF文による分岐で辞書のキーを指定して、変数indexに代入する
if job=='d':
    index='大黒柱'
elif job=='h':
    index='主婦'
elif job=='e':
    index='小学生'
elif job=='p':
    index='ペット'
else:
    index='その他'

#辞書のキーにindexが入って、該当する値が出力される
print(character_dic[index])

ここから実行結果を見ていきます。ifとelif、そしてelseの分岐をイメージして、頭の中でトレースしながら実行しました。

標準入力で【d】を指定した場合。

標準入力で【h】を指定した場合。

標準入力で【e】を指定した場合。

標準入力で【p】を指定した場合。

標準入力でなんかテキトーなキー(ここでは【y】)を指定した場合。

サザエさんのキャラクターで辞書を使った解説は以上になります。

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

■ 参考文献の紹介 ■
じっくり丁寧にPythonを学びたい方向けの書籍を紹介します。

Pythonを基礎から中級程度まで丁寧に学びたい方におすすめの書籍です。
まずはpaizaラーニングなどの学習コンテンツで1〜2巡(苦手な所は納得がいくまで何巡でも)してからこの本で学ぶと、自分の学習状況をブログなどでアウトプット出来るようになり、また、エラーなどの不明点を調べられる力もついていきます。