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

この記事を読むことで、

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

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

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

の学習が出来ます。

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

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

サザエさんキャラの中から、こちらの5名を用意しました。
辞書の名前は「chara_dic」です。

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

まずは、ループで辞書のキーと値を取り出す前に、print関数でシンプルに辞書自体を表示させてみます。

コードはこちらです。

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

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

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

無事に出力されましたが、少し見辛いですよね。

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


コードに下記を追加します。

キーになるのはkey:職業や特徴で、となるのはvalue:キャラクター名として、
forループで(key,value)を指定とすると、「大黒柱,磯野波平」から、「ペット,タマ」までの全てのメンバーを取り出せます。

#書き方は、「 辞書.items(): 」
chara_dic.items()

を使って、キーであるkeyと、であるvalueを取り出します。
ここまでのコードと実行結果です。

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

#辞書.items()を使ってループで出力
for (key,value) in chara_dic.items():
  print(key,value)

これでも辞書の「キー」と「値」が表示されて、先程よりかは幾分見やすくなりましたが、もう少し日本語の体裁を整えたいと思います。


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

print(key+"の、"+value+"さんです。")

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

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

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



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

print("【"+key+"】の、【"+value+"】さんです。")

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

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

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

お疲れ様でした。ブレイクタイムPhotoは、

千葉県の房総半島、外房の御宿の海です。

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

■ 独習Python ■
Kindle版
単行本(ソフトカバー)

Python自作サンプル集へ戻る

写真クリエイターとしての活動
自己紹介

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

この記事を読むことで、

Pythonのリストを単純にループを使って取り出す方法

enumerate関数を使って取り出す方法

IF文の復習

strで数値と文字列をprint文で表示する方法

が可能になります

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

chara=['波平','サザエ','カツオ','タマ']

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

このリストの添字0の波平さん、添字1のサザエさん、添字2のカツオまでが「人間」で、添字3のタマが「猫ちゃん」です。

そこで、typeという変数を用意して、添え字が3のタマの場合のみtypeを「猫ちゃん」に、それ以外は「人間」と表示する様にプログラミングしました。
シンプルなIF文による分岐をしています。

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

#ループを使ってリストを取り出す
#i=3のタマのtypeを「猫ちゃん」にする
for i in range(len(chara)):
  if i==3:
    type='猫ちゃん'
  else:
    type='人間'
  print(chara[i]+':'+type)

実行結果です。

このコードにenumerate関数を使うと、添字と値を同時に表示させることが可能になります。

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

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

#ループを使ってリストを取り出す
#i=3のタマのtypeを「猫ちゃん」にする
for i,member in enumerate(chara):
  if i==3:
    type='猫ちゃん'
  else:
    type='人間'
  print(i,member+':'+type)

このように書き換えられます。

実行結果です。

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

str(i)を使うことによって、数値を文字と一緒にprint文内に表記しております。

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

#ループを使ってリストを取り出す
#i=3のタマのtypeを「猫ちゃん」にする
for i,member in enumerate(chara):
  if i==3:
    type='猫ちゃん'
  else:
    type='人間'
  print('家族No.'+str(i)+' '+member+'さんは「'+type+'」です。')

実行結果です。

この様に、enumerate関数を使うと表記の自由度が増します。
ループ、リストとセットで復習にもなりました。

お疲れ様でした。ブレイクタイムPhotoは、

千葉県房総半島外房、御宿の海です。
ここの海は透明度が高いことが魅力の一つです。

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

■ 独習Python ■
Kindle版
単行本(ソフトカバー)

Python自作サンプル集へ戻る

写真クリエイターとしての活動
自己紹介

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

この記事を読むことで、

・Pythonの辞書の基本的な作り方

・キーと値の指定の仕方


・次のデータの追加方法


・辞書から「キーを指定」して「値を取り出す方法」


・標準入力の復習

が学べます。

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

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

chara_dic={'大黒柱':'磯野波平'}

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

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

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

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

#サザエさんのキャラクターの辞書
#職業や特徴を「キー」、名前を「値」

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

print(chara_dic)

実行結果です。


次に、指定したキーの値のみを取り出してみます。
カツオくんにしようと思います。

#サザエさんのキャラクターの辞書
#職業や特徴を「キー」、名前を「値」

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

print(chara_dic['小学生'])#ここでキーを指定しています。

実行結果です。


この例ではキーに’小学生’と入力しましたが、変数keyに代入する書き方も掲載致します。
今度は主役のサザエさんを出力します。

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

key='主婦'#キーを変数に代入します。

print(chara_dic[key])#変数キーを指定しています。

変数を使ったやり方でも無事に出力出来ました。


今度は、標準入力を使って、好きなキャラクターを表示出来る様に改変します。
そこで入力した内容をIF分岐を使って表示させます。

標準入力で入力する際にアルファベット1文字で簡単な操作性にする為、

「波平さん」の大黒柱を【d】、
「サザエさん」の主婦を「housewife」から【h】、
「カツオくん」の小学生を「Elementary school student」から【e】、
「タラちゃん」の幼児を「infant」から【i】、
「タマ」はペットの【p】

に致します。

標準入力は下記の様に、変数typeに代入します。

type=input()

ここで【d】や【i】などの文字を変数typeに格納します。

また、辞書に新たなキャラクターを追加致します。
キーは「その他」で、値は「伊佐坂先生」を加えました。

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

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

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

#ここで標準入力を使用します。
print('【d】大黒柱、【h】主婦、【e】小学生,【i】幼児,【p】ペット 【記号】を入力>>>',end='')
type=input()


#標準入力で入力した半角英字によって分岐しています。
if type == 'd':
  key='大黒柱'
elif type=='h':
  key='主婦'
elif type=='e':
  key='小学生'
elif type=='i':
  key='幼児'
elif type=='p':
  key='ペット'
else:
  key='その他'
  
print(chara_dic[key])#変数キーを指定しています。

typeに【d】を入力した場合。

typeに【i】を入力した場合。

typeに指定の半角英字以外を入力した場合(仮に【x】と入れてみました。)


お疲れ様でした。ブレイクタイムPhotoは、

マクセルアクアパーク品川
(東京都品川区にある水族館です。)

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

■ 独習Python ■
Kindle版
単行本(ソフトカバー)

Python自作サンプル集へ戻る

写真クリエイターとしての活動
自己紹介

モバイルバージョンを終了