for循環和字典字符串控制我寫了一個字典:可以用Python
msgs = {"msg_1" : "a", "msg_2" : "b", "msg_3" : "c"}
現在我不想在字典人工讀取,因爲我不知道有多少元素將在那裏(我從文件中讀取的字典):
z = "msg_{j}"
for i in range(1, len(msgs) - 1):
y = z.format(j=i) # This makes it "msg_1", "msg_2", "msg_3", ...
print(msgs[y])
這將引發KeyError: msg_1
。 如果我打印出一個接一個的它工作得很好:
print(msgs["msg_1"])
print(msgs["msg_2"])
print(msgs["msg_3"])
... a
... b
... c
任何想法的原因是什麼? 這是爲什麼?
我測試了所有的功能和一切正常工作,直到我到循環部分(如果我使用print()而不是循環它工作正常)。
您顯示的代碼似乎解決了您在實際代碼中遇到的問題。在另一個說明中,'range(1,len(msgs)-1)'只會遍歷1個項目 - 因爲範圍停在'n-1',所以你需要'range(1,len(msgs)+1) ' – karthikr