我刚开始学习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])
谢谢!
答案 0 :(得分:18)
我喜欢Python中包含的pprint
模块。它可以用来打印对象,或者格式化它的一个很好的字符串版本。
import pprint
# Prints the nicely formatted dictionary
pprint.pprint(dictionary)
# Sets 'pretty_dict_str' to
pretty_dict_str = pprint.pformat(dictionary)
但这听起来像是在打印一个库存,用户可能希望将其显示为更像以下内容:
def print_inventory(dct):
print("Items held:")
for item, amount in dct.iteritems():
print("{} ({})".format(item, amount))
inventory = {
"shovels": 3,
"sticks": 2,
"dogs": 1,
}
print_inventory(inventory)
打印:
Items held:
shovels (3)
sticks (2)
dogs (1)
答案 1 :(得分:13)
我最喜欢的方式:
function getUserData()
{
$userarray = array();
$userarray['username'] = $_SESSION['username'];
$userarray['user_id'] = $_SESSION['user_id'];
$userarray['email'] = $_SESSION['email'];
$userarray['level'] = $_SESSION['level'];
return $userarray;
}
答案 2 :(得分:4)
这是我使用的单线程。 (编辑:适用于那些不可JSON序列化的东西)
print("\n".join("{}\t{}".format(k, v) for k, v in dictionary.items()))
说明:这将遍历字典的键和值,为每个字符串创建格式化的字符串,如键+标签+值。 "\n".join(...
在所有字符串之间添加换行符,形成一个新字符串。
示例:
>>> dictionary = {1: 2, 4: 5, "foo": "bar"}
>>> print("\n".join("{}\t{}".format(k, v) for k, v in dictionary.items()))
1 2
4 5
foo bar
>>>
答案 3 :(得分:0)
同意,“很好”是非常主观的。看看这是否有帮助,我一直用它来调试dict
for i in inventory_things.keys():
logger.info('Key_Name:"{kn}", Key_Value:"{kv}"'.format(kn=i, kv=inventory_things[i]))
答案 4 :(得分:0)
我写了这个函数来打印简单的字典:
def dictToString(dict):
return str(dict).replace(', ','\r\n').replace("u'","").replace("'","")[1:-1]
答案 5 :(得分:0)
我建议使用beeprint而不是pprint。
示例:
pprint
{'entities': {'hashtags': [],
'urls': [{'display_url': 'github.com/panyanyany/beeprint',
'indices': [107, 126],
'url': 'https://github.com/panyanyany/beeprint'}],
'user_mentions': []}}
蜂印
{
'entities': {
'hashtags': [],
'urls': [
{
'display_url': 'github.com/panyanyany/beeprint',
'indices': [107, 126],
'url': 'https://github.com/panyanyany/beeprint'}],
},
],
'user_mentions': [],
},
}
与py2 py3 兼容
答案 6 :(得分:0)
Yaml通常更具可读性,尤其是当您具有复杂的嵌套对象,层次结构,嵌套字典等时:
首先请确保您有pyyaml模块:
pip install pyyaml
然后
import yaml
print(yaml.dump(my_dict))