Python 用“;键:value”;for循环中的成对
我想遍历dict,Python 用“;键:value”;for循环中的成对,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,我想遍历dict,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', 'mar
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
将str(spam.values())
更改为spam[k]
。第一个选项给出字典中的所有值,第二个选项产生属于当前键k
dict.values()
返回字典中所有值的列表。为什么不进行键查找
for k in spam.keys():
print(str(k)+': ' + spam[k])
或者更好:
for k, v in spam.items():
print('{}: {}'.format(k, v))
您应该改为使用
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))
您可以这样做:
spam = {'color': 'red', 'age': '42','planet of origin': 'mars'}
for k in spam.keys():
print(k+ ":" +spam[k] )
你试过了吗
for k in spam:
print(str(k)+':'+str(spam[k]))
照mathias711的建议去做! 事实上,您的代码使用str(spam.values())所做的就是写入dict的所有值。 通过执行
str(spam[k])
可以获得与dict“spam”中的键“k”相关联的值。
如果您确实希望输出按特定顺序排列,那么应该有一个列表,其中所有键都按此顺序排序,因为默认情况下,字典的键是不按顺序排列的
您的代码看起来是这样的:
spam = {'color': 'red', 'age': '42','planet of origin': 'mars'}
liste_ordered_for_output['color', 'age', 'planet of origin']
for key in liste_ordered_for_output:
print(str(key)+': ' + str(spam[key]))
试试下面的代码
s={'name': 'you', 'number': 123, 'password': '555', 'amt': 800}
for i in s:
print(i,"=>" ,s[i])
无需强制转换为StringWelcome to Stack Overflow的可能副本。请看。在您的情况下,答案应该使用代码块正确格式化。此外,代码是可以的,但添加上下文(其背后的原因)比单独使用代码更有用。