简洁的方式以良好的格式打印字典键

时间:2014-06-20 13:16:59

标签: python dictionary

我想在字典中获得所有键(以及可能的子键)的良好输出。因此我写道:

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

4 个答案:

答案 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()])

*这仅适用于非嵌套词典