2015-09-04 116 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