如何在python中一次将两个值附加到字典?

时间:2015-09-04 19:49:18

标签: python dictionary

我认为这个标题并没有真正解释它,但这就是问题所在。

我的代码就是这个(Python 2.7):

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

但我总是得到KeyError:0。

3 个答案:

答案 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