这就是字典

cars = {'A':{'speed':70,
        'color':2},
        'B':{'speed':60,
        'color':3}}

使用这个for循环

for keys,values in cars.items():
    print(keys)
    print(values)

它打印以下内容:

B
{'color': 3, 'speed': 60}
A
{'color': 2, 'speed': 70}

但是我希望程序像这样打印它:

B
color : 3
speed : 60
A
color : 2
speed : 70

我刚开始学习字典,所以我不知道该怎么做。


当前回答

for x in cars:
    print (x)
    for y in cars[x]:
        print (y,':',cars[x][y])

输出:

A
color : 2
speed : 70
B
color : 3
speed : 60

其他回答

print.pprint()是一个很好的工具:

>>> import pprint
>>> cars = {'A':{'speed':70,
...         'color':2},
...         'B':{'speed':60,
...         'color':3}}
>>> pprint.pprint(cars, width=1)
{'A': {'color': 2,
       'speed': 70},
 'B': {'color': 3,
       'speed': 60}}

如果你知道树只有两层,这是可行的:

for k1 in cars:
    print(k1)
    d = cars[k1]
    for k2 in d
        print(k2, ':', d[k2])

检查下面的一行代码:

print('\n'.join("%s\n%s" % (key1,('\n'.join("%s : %r" % (key2,val2) for (key2,val2) in val1.items()))) for (key1,val1) in cars.items()))

输出:

A
speed : 70
color : 2
B
speed : 60
color : 3

我认为列表理解是最干净的方法:

mydict = {a:1, b:2, c:3}

[(print("key:", key, end='\t'), print('value:', value)) for key, value in mydict.items()]
for car,info in cars.items():
    print(car)
    for key,value in info.items():
        print(key, ":", value)