在 for 循环中打印带有“键:值”对的字典

新手上路,请多包涵

我想遍历字典 spam ,并以 "key: value" 的格式打印结果。我的代码有问题,产生了不同的结果。

有没有办法纠正输出?为什么我得到这个输出?

 spam = {'color': 'red', 'age': '42', 'planet of origin': 'mars'}

for k in spam.keys():
    print(str(k) + ': ' + str(spam.values()))

结果得到:

 color: dict_values(['red', '42', 'mars'])
age: dict_values(['red', '42', 'mars'])
planet of origin: dict_values(['red', '42', 'mars'])

预期结果:

 color: red
age: 42
planet of origin: mars

原文由 Newb69420 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 748
2 个回答

您应该改用 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))

原文由 Taku 发布,翻译遵循 CC BY-SA 3.0 许可协议

dict.values() 返回字典中所有值的列表。为什么不进行键查找?

 for k in spam.keys():
     print(str(k)+': '  + spam[k])

或者更好:

 for k, v in spam.items():
    print('{}: {}'.format(k, v))

原文由 brianpck 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题