2013-01-07 41 views
0

我正在使用字典中的字典來計算與20個項目相關的四個參數。如何更新和訪問字典中的字典的子鍵[python]

resi = {'a': {'x': 0, 'y': 0, 'z': 0}, 'b': {'x': 0, 'y': 0, 'z': 0}, ...} 

函數'count'計算20個項目出現的參數x,y,z的頻率。

re:主字典中的一個鍵resi; bas:在嵌套字典

def count(re, bas, aa = resi) : 
    t = aa[re] 
    t[bas] += 1 
    print aa 

當函數被調用時,count一鍵更新所有主密鑰的參數。我也試過

aa[re][0][bas] += 1 

這顯示了一個關鍵錯誤。如何更新主字典中的特定密鑰?

+0

我不完全確定你要在這裏做什麼。你傳遞給'count()'的值是什麼? –

+0

重新和bas是字符串四個字符長!這會影響嗎? – Andrew

+0

聽起來好像每個嵌套字典都是* one * dict的副本而不是單獨的對象。 –

回答

0

您需要創建獨特類型的字典爲subdict,你不能重複使用相同的second_dict值,並預計這將導致您的嵌套結構獨立的字典。

用途:

resi = {k: dict(second_dict) for k in res} 

代替; dict(second_dict)爲每個密鑰創建second_dict的新副本。

2

你首先創造了字典,

resi = dict((k, {'x':0, ...}) for k in ('a', 'b', ...)) 
+0

如何訪問此詞典中的每個項目?我以前用過的格式相同嗎? – Andrew