我认为这个标题并没有真正解释它,但这就是问题所在。
我的代码就是这个(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 :(得分: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个项目之前尝试设置项目的项目。
答案 1 :(得分: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
答案 2 :(得分: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