2013-01-07 45 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