![見出し画像](https://assets.st-note.com/production/uploads/images/124609424/rectangle_large_type_2_3f587ba729a933a569689d7e4019b564.jpeg?width=1200)
Python入門【必修編】第8章やってみよう8-7について思ったこと
8-7.音楽のアルバムについての辞書データを作成する関数作成。
解答を読むと出力がひとつずつしか出来なくて、辞書っぽくないなぁと個人的に感じまして、自分なりに書いてみました。
一応、予測した挙動とは一致してるのでヨシ……?🤔
album_dict = {}
def make_album(id, artist, title, track=0):
"""アルバムに関する情報を含んだ辞書を作成する"""
album_dict[id]={
'artist': artist.title(),
'title': title.title(),
}
if track:
album_dict[id]['track']= track
return album_dict
make_album(1, 'queen', 'rapsodia')
make_album(3, 'ずっと真夜中でいいのに', '潜潜話', 13)
make_album(2, 'Carpenters', 'Only Yesterday')
{1: {'artist': 'Queen', 'title': 'Rapsodia'}, 3: {'artist': 'ずっと真夜中でいいのに', 'title': 'せんせんわや', 'track': 20}, 2: {'artist': 'Carpenters', 'title': 'Only Yesterday'}}
辞書入力とその結果
start_message = ''
while start_message != '終了':
album_id = input("アルバムIDを入力してください: ")
album_title = input("アルバムのタイトルを入力してください: ")
album_artist = input("アルバムのアーティストを入力してください: ")
album_track = input("トラック数を入力してください: ")
make_album(album_id, album_artist, album_title, album_track)
start_message = input("アルバムを続けて登録しますか?終わりにする場合は「終了」と入力してください: ")
if start_message == '終了':
print(start_message)
for id, value in album_dict.items():
print(value)
アルバムIDを入力してください: 4
アルバムのタイトルを入力してください: Corridor
アルバムのアーティストを入力してください: 須田景凪
トラック数を入力してください: 13
アルバムを続けて登録しますか?終わりにする場合は「終了」と入力してください: 終了
終了
{'artist': 'Queen', 'title': 'Rapsodia'}
{'artist': 'ずっと真夜中でいいのに', 'title': '潜潜話', 'track': 13}
{'artist': 'Carpenters', 'title': 'Only Yesterday'}
{'artist': '須田景凪', 'title': 'Corridor', 'track': '13'}
【参考】Pythonで2次元の辞書に要素を追加する
https://toeming.hatenablog.com/entry/2022/02/22/python_add_item_to_2dimDict
公式回答
この記事が気に入ったらサポートをしてみませんか?