New*_*420 0 python dictionary python-3.x
我想遍历dict,spam并以格式打印结果"key: value".我的代码产生了不同的结果.
有没有办法纠正输出?为什么我得到这个输出?
spam = {'color': 'red', 'age': '42', 'planet of origin': 'mars'}
for k in spam.keys():
print(str(k) + ': ' + str(spam.values()))
Run Code Online (Sandbox Code Playgroud)
得到的结果是:
color: dict_values(['red', '42', 'mars'])
age: dict_values(['red', '42', 'mars'])
planet of origin: dict_values(['red', '42', 'mars'])
Run Code Online (Sandbox Code Playgroud)
预期结果:
color: red
age: 42
planet of origin: mars
Run Code Online (Sandbox Code Playgroud)
abc*_*ccd 14
你应该改为使用dict.items,因为dict.keys只是遍历键,然后你打印dict.values()返回的所有值dict.
spam = {'color': 'red', 'age': '42','planet of origin': 'mars'}
for k,v in spam.items():
print(str(k)+': ' + str(v))
Run Code Online (Sandbox Code Playgroud)