尝试在包含在defaultdict
中的字典的结构中显示数据dictionary=defaultdic(dict)
实施例
defaultdict = {key1} :
{subkey1}:
(val1,
val2,
val3)
{subkey2}:
(val4,
val5,
val6)
{key2} :
{subkey3}:
(val7,
val8,
val9),
{subkey4}:
(val10,
val11,
val12)
我试着做
for key in dictionary.iterkeys():
print key # This will return me the key
for items in dictionary[key]:
print items # This will return me the subkey
for values in dictionary[key][items]:
print values #this return the values for each subkey)
问题是我只是打印出一份清单;当你有太多的物品和钥匙时,这几乎是不可能的。
如何正确打印这些复杂的结构,以一种不会让你睁开眼睛的方式呈现它们?我尝试使用pprint和json.dumps,但两者都没有让情况变得更好。理想情况下,我希望在我的示例中打印它,但我看不到一种简单的方法,不会通过复杂的字符串操作来格式化打印输出。
答案 0 :(得分:6)
Python只有PrettyPrint模块用于此目的。请注意,默认设置不会很好地打印,但如果您先转换回常规字典,它会很好。
from pprint import pprint
pprint(dict(dictionary))
答案 1 :(得分:0)
使用缩进将其打印出来,以便您的眼睛可以直观地看到结构。
for key in dictionary.iterkeys():
print key # This will return me the key
for items in dictionary[key]:
print(" %s" % items) # This will return me the subkey
for values in dictionary[key][items]:
print(" %s" % values) #this return the values for each subkey)
您也可以替换\t
的空格字符来使用制表符;两者都会很好。如果Python抱怨对象无法格式化为String,您可能还必须使用repr(values)
或str(values)
显式获取它们的字符串表示。