使用for循环将多个值添加到字典中的一个键

时间:2017-03-24 14:59:46

标签: python dictionary for-loop

我在使用的功能中使用了类似的方法。当我尝试这样做时,为什么会出现关键错误?

def trial():
     adict={}
     for x in [1,2,3]:
          for y in [1,2]:
               adict[y] += x
print(adict)

4 个答案:

答案 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]失败了,因为它正在访问一个不存在的变量。