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