2015-09-04 118 views
0

我不认为标题真的解释它,但这是问题。如何在python中将两个值附加到字典中?

我的代码是这样(的Python 2.7):

Dict = {} 
    for i in range(0, 6): 
     for j in range(0, 7): 
      Dict[i][j] = 0; 
    return Dict; 

但我总是得到KeyError异常:0

+0

当你访问'Dict [i]'时,这个项目不会奇迹般地出现(这就是'defaultdict'的用途)。因为'Dict [i]'指的是一个不在字典中的元素,所以你得到一个'KeyError'(即“*这个项目不在这里*”)。 – dhke

回答

0

这里,设置一次一个:

mydict = {} 
for i in range(0, 6): 
    mydict[i] = {} 

    for j in range(0, 7): 
     mydict[i][j] = 0 

return mydict 

也就是说,如果你想要这样的东西:

{ 
    0:{ 
     0: 0, 
     // ... 
    }, 
    // ... 
} 

您遇到的问题是,在定义第i个项目之前,您正在尝试设置项目的项目。

+0

感谢它的魅力! –

0

使用defaultdict:

from collections import defaultdict 

a = defaultdict(dict) 

for i in range(0, 6): 
    for j in range(0, 7): 
     a[i][j] = 0 
0

在Python中你必须明确地在字典中定义的每个索引。你可以让它们为你自动创建,就像这样

import collections 
auto_dict = lambda: collections.defaultdict(auto_dict) 

my_dict = auto_dict() 
my_dict['lvl1']['lvl2'] = 1 
print my_dict['lvl1']['lvl2'] 
# 1