この記事を読むことで、
・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()、もう少しスッキリさせたいですよね。
なので、もうちょっと改変します。
最後までお読みいただきありがとうございました。