在Python 27中
p=100
dicthg = {}
for i in range(10):
print i
dicthg = {i:p};
for i in range(10):
print "-", i
print dicthg[i]
关键错误 注释第二个for循环,它打印dicthg [i]罚款。
尝试第二次循环
for i in dicthg:
仅获得最后一项(索引9)
同样
for i,j in dicthg.items():
print i,j
我是Python的新手,所以我提前为我的无知道歉。我对以前的帖子进行了广泛的搜索。
答案 0 :(得分:0)
您没有加载它。您将在循环的每次迭代中替换整个字典。以下是加载的方式。
for i in range(10):
print i
dicthg[i] = p
答案 1 :(得分:0)
这是一个每次只有1个元素的新词典
for i in range(10):
print i
dicthg = {i:p}
目前,dicthg
具有以下值
{9: 100}
我认为您的意图如下
for i in range(10):
print i
dicthg[i] = p
现在看一下字典
{0: 100, 1: 100, 2: 100, 3: 100, 4: 100, 5: 100, 6: 100, 7: 100, 8: 100, 9: 100}
答案 2 :(得分:0)
p=100
dicthg = {i:p for i in range(10)}
使用字典理解创建字典的另一种方法。
答案 3 :(得分:0)
要使代码正常工作,请更换:
dicthg = {i:p}
的
dicthg.update({i:p})
如果您想要一种简单的方法来了解发生了什么,请将此行添加到第一个循环中:
print dicthg
这将显示第二个循环中KeyError
的原因。
答案 4 :(得分:0)
以下是您的计划的修改版本:
p=100
dicthg = {}
for i in range(10):
print i
# This is correct/simple way of setting item in dictionary
dicthg[i] = p
print "value of i = " + str(i)
print "Setting i to 0 again"
i = 0
print "new value of i = " + str(i)
for i in range(10):
print "-", i
print dicthg[i]
所以我做了两处修改:
希望这有帮助!