1

我在字典中使用字典来计算与 20 个项目相关的四个参数。

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

函数“count”计算参数 x、y、z 在 20 个项目中出现的频率。

re: main dict 中的一个键resibas: 嵌套字典中的一个键

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

调用该函数时,count更新所有主键中的参数。我也试过

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

这显示了一个关键错误。如何更新主字典中的特定键?

4

2 回答 2

2

你一开始就搞砸了创建字典。

resi = dict((k, {'x':0, ...}) for k in ('a', 'b', ...))
于 2013-01-07T11:09:31.740 回答
0

您需要为 subdict创建唯一的second_dict字典,您不能重用相同的值并期望这会为您的嵌套结构生成单独的字典。

采用:

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

反而; 为每个密钥dict(second_dict)创建一个新副本。second_dict

于 2013-01-07T11:29:35.750 回答