用for循环打印带有“key :value”对的字典。

30 浏览
0 Comments

用for循环打印带有“key :value”对的字典。

我想要遍历字典 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

admin 更改状态以发布 2023年5月23日
0
0 Comments

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

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

甚至更好的方法是:

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

0
0 Comments

你应该使用 dict.items 而不是 dict.keys,因为 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))

0