見出し画像

[Python]defaultdictを使った辞書データの作成

1.辞書データの作成

defaultdictモジュールを用いた辞書データを作ります。作成元となるデータはタプルが入ったリストで、タプルには本の作者、タイトルのデータが格納されています。同じ著者から違うタイトルの本が出版されている場合があるので、作成する辞書データはキーに著者名を、値には本のタイトルをリストで表現します。

2.コード

from collections import defaultdict
#作成元データ
author_book = [("太宰治", "人間失格"), ("夏目漱石", "坊ちゃん"),
           ("太宰治", "斜陽"), ("夏目漱石", "草枕"),
           ("芥川龍之介", "鼻"), ("谷崎純一郎", "春琴抄")]

"""
存在しないキーを参照された際に渡された引数の戻り値を辞書の値として返す
(この場合はlist()で空のリストを返す)
"""
dd = defaultdict(list)

#辞書作成
for author, title in author_book:
    dd[author].append(title)

#辞書呼び出し
for author, book_list in dd.items():
    print("著者名:{0}".format(author))
    print("作品一覧:{0}部".format(len(book_list)))
    for book in book_list:
        print("\t-", book)
    print("=" * 20)

3.実行結果

著者名:太宰治
作品一覧:2部
        - 人間失格
        - 斜陽
====================
著者名:夏目漱石
作品一覧:2部
        - 坊ちゃん
        - 草枕
====================
著者名:芥川龍之介
作品一覧:1部
        - 鼻
====================
著者名:谷崎純一郎
作品一覧:1部
        - 春琴抄

この記事が気に入ったらサポートをしてみませんか?