我想在字典中获得所有键(以及可能的子键)的良好输出。因此我写道:
print("The keys in this dictionary are:\n")
for k in mydict.keys():
print(k)
这是有效的,但有更简洁的方法吗?我尝试了列表理解,但是这当然会返回一个我无法连接的列表可能会引入字符串。还有什么功能可以使用吗?
编辑: 字典可能如下所示:
mydict = {'key1':'value1',
'key2':{'subkey1':'subvalue1','subkey2':'subvalue2'}}
我对“好格式化”的含义持开放态度。但是,也许是这样的:
key1
key2: subkey1, subkey2
答案 0 :(得分:4)
def dump_keys(d, lvl=0):
for k, v in d.iteritems():
print '%s%s' % (lvl * ' ', k)
if type(v) == dict:
dump_keys(v, lvl+1)
mydict = {'key1':'value1',
'key2':{'subkey1':'subvalue1',
'subkey2':'subvalue2',
'subkey3': {'subsubkey1' : 'subsubkeyval1'}}}
dump_keys(mydict)
答案 1 :(得分:2)
如果您想要简洁的代码,请尝试pprint模块。
import pprint
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(data)
此处还有一些嵌套词典的其他解决方案:pretty printing nested dictionaries in Python?
答案 2 :(得分:2)
我建议打印一下
import json
json.dumps(dict, indent=4)
答案 3 :(得分:0)
你实际上可以将你的列表与你的引入字符串连接起来。试试这个:
print "The keys in my dictionary are: " + ','.join([k for k in mydict.keys()])
*这仅适用于非嵌套词典