我不認爲標題真的解釋它,但這是問題。如何在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