我在使用的功能中使用了类似的方法。当我尝试这样做时,为什么会出现关键错误?
def trial():
adict={}
for x in [1,2,3]:
for y in [1,2]:
adict[y] += x
print(adict)
答案 0 :(得分:1)
adict
空出来。您不能将整数添加到尚不存在的值。
答案 1 :(得分:1)
您没有为每个密钥初始化adict
。您可以使用defaultdict
来解决此问题:
from collections import defaultdict
def trial():
adict=defaultdict(int)
for x in [1,2,3]:
for y in [1,2]:
adict[y] += x
print(adict)
trial()
结果为defaultdict(<class 'int'>, {1: 6, 2: 6})
答案 2 :(得分:0)
首次使用时,JsonNode root = mapper.readTree(dataFileLocation);
没有分配值。
adict[y]
输出:
def trial():
adict={}
for x in [1,2,3]:
for y in [1,2]:
if y in adict: # Check if we have y in adict or not
adict[y] += x
else: # If not, set it to x
adict[y] = x
print(adict)
答案 3 :(得分:0)
你应该像这样修改你的代码:
def trial():
adict={0,0,0}
for x in [1,2,3]:
for y in [1,2]:
adict[y] += x
print(adict)
“adict”没有条目。因此adict [1]失败了,因为它正在访问一个不存在的变量。