我不认为标题真的解释它,但这是问题。如何在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
我不认为标题真的解释它,但这是问题。如何在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
这里,设置一次一个:
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个项目之前,您正在尝试设置项目的项目。
感谢它的魅力! –
使用defaultdict:
from collections import defaultdict
a = defaultdict(dict)
for i in range(0, 6):
for j in range(0, 7):
a[i][j] = 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
当你访问'Dict [i]'时,这个项目不会奇迹般地出现(这就是'defaultdict'的用途)。因为'Dict [i]'指的是一个不在字典中的元素,所以你得到一个'KeyError'(即“*这个项目不在这里*”)。 – dhke