1. ホーム
  2. python

[解決済み] Pythonで辞書をきれいに印刷するには?

2022-12-20 14:26:26

質問

Pythonを学び始めたばかりで、テキストゲームを作っています。私はインベントリシステムをしたいのですが、私は醜く見えることなく辞書を印刷することができないようです。

これは私が今のところ持っているものです。

def inventory():
    for numberofitems in len(inventory_content.keys()):
        inventory_things = list(inventory_content.keys())
        inventory_amounts = list(inventory_content.values())
        print(inventory_things[numberofitems])

どのように解決するのですか?

私は pprint モジュール(Pretty Print)が好きです。これは、オブジェクトを表示するか、またはそれの素敵な文字列バージョンをフォーマットするために使用することができます。

import pprint

# Prints the nicely formatted dictionary
pprint.pprint(dictionary)

# Sets 'pretty_dict_str' to the formatted string value
pretty_dict_str = pprint.pformat(dictionary)

しかし、インベントリを印刷しているようなので、ユーザーは以下のような表示を望んでいることでしょう。

def print_inventory(dct):
    print("Items held:")
    for item, amount in dct.items():  # dct.iteritems() in Python 2
        print("{} ({})".format(item, amount))

inventory = {
    "shovels": 3,
    "sticks": 2,
    "dogs": 1,
}

print_inventory(inventory)

というように印刷します。

Items held:
shovels (3)
sticks (2)
dogs (1)