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で辞書を使ってサザエさんのキャラクターを職業別に出力

この記事を読むことで、

・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自作サンプル集へ戻る

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

【Python辞書で化学(周期表・元素記号)のお勉強】辞書を使って元素記号をキーに元素名を値にする

この記事を読むことでPythonの辞書について化学の元素を例に、

・辞書をループで取り出す

・標準入力を用いて指定した元素名を表示する

ことが可能になります。

まず、この様な辞書を用意します。(コピペ出来ます)

elements={'H':'水素',
'He':'ヘリウム',
'Li':'リチウム',
'Be':'ベリリウム',
'B':'ホウ素',
'C':'炭素',
'N':'窒素',
'O':'酸素',
'F':'フッ素',
'Ne':'ネオン',
'Na':'ナトリウム',
'Mg':'マグネシウム',
'Al':'アルミニウム',
'Si':'ケイ素',
'P':'リン',
'S':'硫黄',
'Cl':'塩素',
}

まずはこの辞書をループで取り出しますので、下記のコードを追記致します。

for element,name in elements.items():
  print(element+'…「'+name+'」')


今度は標準入力で元素記号を入力すると、その元素の日本語名がリストで表示される様に致します。追加したコードです。

print('元素名を入力>>>',end='')
element=input()
print(elements[element]+'\n')

上記のコードを加えて、ループで取り出した一覧から、好きな元素記号を標準入力で入力します。

実行結果です。
この例では、「Mg」でマグネシウムを入力しています。

これまでのコードです。

elements={'H':'水素',
'He':'ヘリウム',
'Li':'リチウム',
'Be':'ベリリウム',
'B':'ホウ素',
'C':'炭素',
'N':'窒素',
'O':'酸素',
'F':'フッ素',
'Ne':'ネオン',
'Na':'ナトリウム',
'Mg':'マグネシウム',
'Al':'アルミニウム',
'Si':'ケイ素',
'P':'リン',
'S':'硫黄',
'Cl':'塩素',
}

print()

for element,name in elements.items():
  print(element+'…「'+name+'」')

print()

print('元素名を入力>>>',end='')
element=input()
print(elements[element]+'\n')

空行のprint文を入れて、体裁を整えています。

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

払沢の滝、滝壺です。(東京都檜原村)

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

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

Python自作サンプル集へ戻る

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

【Python辞書で歴史(世界史)のお勉強】辞書を使って年号をキーに出来事を値にする

この記事を読むことで、

・Pythonの辞書をループで出力

・辞書のキーに該当する値を取り出す

が可能になります。
例として、世界史の年表を用います。

まず、この様な世界史の年表の辞書を用意(コピペ出来ます)します。

worldHistory={962:'神聖ローマ帝国が成立する',
1066:'ノルマン征服 (ノルマン朝が成立する)',
1202:'第4回十字軍がコンスタンティノープルを占領しラテン帝国を建国する',
1215:'ジョン王がマグナカルタを承認する',
1453:'ビザンツ帝国滅亡(百年戦争終結)',
1479:'スペイン王国が成立する',
1492:'コロンブスがアメリカ大陸を発見する',
1660:'イギリスで王政復古がおこる',
1685:'フランスでナントの勅令が廃止される',
1688:'イギリスで名誉革命がおこる',
1789:'フランス革命がおこる (フランス人権宣言)',
1804:'ナポレオンが皇帝に即位',
1848:'フランスで二月革命がおこる',
1902:'日英同盟の締結',
1905:'ポーツマス条約が結ばれる',}

では、これをループで取り出してみます。

yearをキーにして、その年に起きたことをeventにして、辞書historyにitems()を付けて辞書をループで取り出しています。

for year,event in worldHistory.items():
  print(str(year)+'年に「'+event+'」')

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

worldHistory={962:'神聖ローマ帝国が成立する',
1066:'ノルマン征服 (ノルマン朝が成立する)',
1202:'第4回十字軍がコンスタンティノープルを占領しラテン帝国を建国する',
1215:'ジョン王がマグナカルタを承認する',
1453:'ビザンツ帝国滅亡(百年戦争終結)',
1479:'スペイン王国が成立する',
1492:'コロンブスがアメリカ大陸を発見する',
1660:'イギリスで王政復古がおこる',
1685:'フランスでナントの勅令が廃止される',
1688:'イギリスで名誉革命がおこる',
1789:'フランス革命がおこる (フランス人権宣言)',
1804:'ナポレオンが皇帝に即位',
1848:'フランスで二月革命がおこる',
1902:'日英同盟の締結',
1905:'ポーツマス条約が結ばれる',}

print()

for year,event in worldHistory.items():
  print(str(year)+'年に「'+event+'」')

print()

次は標準入力で年号を入力すると出来事がリストで表示される様に致します。
追加するコードです。

print('年号を入力>>>',end='')
year=int(input())
print(worldHistory[year]+'\n')

上記のコードを加えて、年表一覧から好きな年号を標準入力で入力します。
ここまでのコードと実行結果です。

worldHistory={962:'神聖ローマ帝国が成立する',
1066:'ノルマン征服 (ノルマン朝が成立する)',
1202:'第4回十字軍がコンスタンティノープルを占領しラテン帝国を建国する',
1215:'ジョン王がマグナカルタを承認する',
1453:'ビザンツ帝国滅亡(百年戦争終結)',
1479:'スペイン王国が成立する',
1492:'コロンブスがアメリカ大陸を発見する',
1660:'イギリスで王政復古がおこる',
1685:'フランスでナントの勅令が廃止される',
1688:'イギリスで名誉革命がおこる',
1789:'フランス革命がおこる (フランス人権宣言)',
1804:'ナポレオンが皇帝に即位',
1848:'フランスで二月革命がおこる',
1902:'日英同盟の締結',
1905:'ポーツマス条約が結ばれる',}

print()

for year,event in worldHistory.items():
  print(str(year)+'年に「'+event+'」')

print()

print('年号を入力>>>',end="")
year=int(input())
print(worldHistory[year]+'\n')

この例では「1688」と入力して、1688年の「イギリスで名誉革命がおこる」と出力させました。

print文の空行を入れて体裁を整えています。

参考にした歴史のウェブサイトはこちらになります。

【世界史】年号語呂合わせ一覧!センター試験対策の暗記に最適

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

多摩川土手です。

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

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

Python自作サンプル集へ戻る

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

【Python辞書で歴史(日本史)のお勉強】辞書を使って年号をキーに出来事を値にする

この記事を読むことで、

・Pythonの辞書をループで取り出せる

・キーに該当する値を取り出せる

ことが可能になります。
例として、日本史の年号をキーに、その年の出来事を値にします。

こちらが用意する辞書です。

#日本史の年号をキーに出来事を値にした辞書を作成
japaneseHistory={607:'小野妹子ら遣隋使派遣',
720:'日本書紀の編纂',
1086:'白河上皇の院政始まる',
1221:'承久の乱',
1338:'室町幕府の成立',
1588:'刀狩り',
1603:'江戸幕府の成立',
1709:'新井白石の政治',
1837:'大塩平八郎の乱',
1853:'ペリー来航',
1877:'西南戦争',
1902:'日英同盟'}

参考にした歴史のウェブサイトはこちらになります。

では、この辞書をループで取り出してみます。
コードと実行結果です。

#日本史の年号をキーに出来事を値にした辞書を作成
japaneseHistory={607:'小野妹子ら遣隋使派遣',
720:'日本書紀の編纂',
1086:'白河上皇の院政始まる',
1221:'承久の乱',
1338:'室町幕府の成立',
1588:'刀狩り',
1603:'江戸幕府の成立',
1709:'新井白石の政治',
1837:'大塩平八郎の乱',
1853:'ペリー来航',
1877:'西南戦争',
1902:'日英同盟'}

print()

for year,event in japaneseHistory.items():
  print(str(year)+'年には「'+event+'」がありました。')

print()


今度は標準入力で年号を入力すると出来事がリストで表示される様に致します。

print('年号を入力して下さい>>>',end="")
year=int(input())
print('その年には【'+japaneseHistory[year]+'】がありました')

辞書の一覧にある年から好きな年号を標準入力で入力して、出来事を表示するコードと
実行結果です。ループの表示を参考に、好きな年号を入力します。

#日本史の年号をキーに出来事を値にした辞書を作成
japaneseHistory={607:'小野妹子ら遣隋使派遣',
720:'日本書紀の編纂',
1086:'白河上皇の院政始まる',
1221:'承久の乱',
1338:'室町幕府の成立',
1588:'刀狩り',
1603:'江戸幕府の成立',
1709:'新井白石の政治',
1837:'大塩平八郎の乱',
1853:'ペリー来航',
1877:'西南戦争',
1902:'日英同盟'}

print()

for year,event in japaneseHistory.items():
  print(str(year)+'年には「'+event+'」がありました。')

print()

print('好きな年号を半角数字で入力して下さい>>>',end="")
year=int(input())
print('その年には【'+japaneseHistory[year]+'】がありました。')

print()

この例では1853と入力すると、「ペリー来航」と出力されました。


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

マクセルアクアパーク品川(水族館)の「ノコギリエイ」です。

怖かわいいです(笑)

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

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

Python自作サンプル集へ戻る

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

【Python並び替え】リストと辞書を昇順・降順|sortとsortedで[Alexandros]の曲の長さ順に表示

この記事を読むことで、

リストと辞書を昇順・降順に並べ替える

・リストを並べ替えるsort

・辞書を並び替えるsorted

の概要が掴めます。


具体例として、[Alexandros]というバンドの曲の中でも特にお気に入りの曲を用います。

今回使用する曲のリストです。

4:08 ワタリドリ 
3:15 FamousDay
4:27 RunAway
4:46 SNOW SOUND

これをこの様なリストを作ってみました。

DROS=['4:27 RunAway','4:08 ワタリドリ','3:15 FamousDay','4:46 SNOWSOUND']

下記のコードで、このまま出力してみます。
ループを使って見やすくしております。

#曲の入ったリスト
DROS=['4:27 RunAway','4:08 ワタリドリ','3:15 FamousDay','4:46 SNOWSOUND']

print("そのまま出力")
for music in DROS:
  print(music)

このコードの出力結果です。


では、このリストを昇順にします。

DROS.sort()

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

#曲の入ったリスト
DROS=['4:27 RunAway','4:08 ワタリドリ','3:15 FamousDay','4:46 SNOWSOUND']

print("そのまま出力")
for music in DROS:
  print(music)

#ここでリストを昇順にしている
DROS.sort()

print("【昇順】で出力")
for music in DROS:
  print(music)


次に、このリストを降順にしてみます。
降順の書式はこの様になります。

DROS.sort(reverse=True)

では、降順の出力は、この様に書きます。

reverseはデフォルトでは、Falseになっています。
これをTrueにすることによって、リストを降順にしています。

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

#曲の入ったリスト
DROS=['4:27 RunAway','4:08 ワタリドリ','3:15 FamousDay','4:46 SNOWSOUND']


print("そのまま出力")
for music in DROS:
  print(music)


#ここでリストを昇順にしている
DROS.sort()

print("【昇順】で出力")
for music in DROS:
  print(music)


#ここでリストを降順にしている
DROS.sort(reverse=True)

print("【降順】で出力")
for music in DROS:
  print(music)

それでは、辞書での並び替えについて掲載致します。
この様な辞書を作りました。

dict_DROS={'4:27':'RunAway','4:08':' ワタリドリ','3:15':'FamousDay','4:46':'SNOWSOUND'}

まずは、そのまま出力するコードと実行結果です。

#曲の入った辞書
dict_DROS={'4:27':'RunAway','4:08':' ワタリドリ','3:15':'FamousDay','4:46':'SNOWSOUND'}

print("そのまま出力")
for (time,music) in dict_DROS.items():
  print(time,music)

では、同様に辞書を昇順にしてみます。

リストと異なる点はsortedを使うことと、newやitems()も使うことによって昇順にする点です。

new_dict_DROS=sorted(dict_DROS.items())

上記を簡単に書くと、並び替えたい辞書を新しい辞書に代入して、その新しい辞書を出力しています。

コードと実行結果です。

#曲の入った辞書
dict_DROS={'4:27':'RunAway','4:08':' ワタリドリ','3:15':'FamousDay','4:46':'SNOWSOUND'}

print("そのまま出力")
for (time,music) in dict_DROS.items():
  print(time,music)

#ここで辞書を昇順にしている
new_dict_DROS=sorted(dict_DROS.items())

print("【昇順】で出力")
for (time,music) in new_dict_DROS:
  print(time,music)

今度は辞書を降順にしてみます。この様にコードを追記します。
こちらもreverseをTrueにします。

new_dict_DROS=sorted(dict_DROS.items(),reverse=True)

コードと実行結果です。

#曲の入った辞書
dict_DROS={'4:27':'RunAway','4:08':' ワタリドリ','3:15':'FamousDay','4:46':'SNOWSOUND'}

print("そのまま出力")
for (time,music) in dict_DROS.items():
  print(time,music)

#ここで辞書を昇順にしている
new_dict_DROS=sorted(dict_DROS.items())

print("【昇順】で出力")
for (time,music) in new_dict_DROS:
  print(time,music)

#ここで辞書を降順にしている
new_dict_DROS=sorted(dict_DROS.items(),reverse=True)

print("【降順】で出力")
for (time,music) in new_dict_DROS:
  print(time,music)

今度歌ってみたい曲です。

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

千葉県にある房総半島、外房の御宿の海です。
透明度が高い海が魅力ですね。

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

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

Python自作サンプル集へ戻る

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