この記事を読むことで、
・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巡(苦手な所は納得がいくまで何巡でも)してからこの本で学ぶと、自分の学習状況をブログなどでアウトプット出来るようになり、また、エラーなどの不明点を調べられる力もついていきます。