[英]Print the dict with “key: value” pairs in a for loop
我想遍歷 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', 'mars'])
age: dict_values(['red', '42', 'mars'])
planet of origin: dict_values(['red', '42', 'mars'])
預期結果:
color: red
age: 42
planet of origin: mars
您應該改為使用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))
dict.values()
返回字典中所有值的列表。 為什么不進行密鑰查找?
for k in spam.keys():
print(str(k)+': ' + spam[k])
或者甚至更好:
for k, v in spam.items():
print('{}: {}'.format(k, v))
將str(spam.values())
更改為spam[k]
。 第一個選項給出字典中的所有值,第二個選項產生屬於當前鍵k
的值。
你可以這樣做:
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]))
試試下面的代碼,
s={'name': 'you', 'number': 123, 'password': '555', 'amt': 800}
for i in s:
print(i,"=>" ,s[i])
按照 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]))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.