如果我正在阅读各种对象并递增其相应字典键(例如,类别)的值,其中字典的值是列表,则所有字典条目最后得到相同的值,这是所有值的总和,而不是预期的值。如果字典的值是一个float/int而不是一个列表,这不会发生。递增字典值总是结束
category_dict = dict(zip(category_list,[0,0]*len(category_list)))
for item in data:
i = item['Type']:
category_dict[i][0] += item['Amount']
结果是这样的:
{item1: 98999, item2: 98999, item3: 98999...}
其中98999
是所有金额的总和。
任何帮助表示赞赏。
'category_dict = dict.fromkeys(category_list,0)'会更具可读性。 – 2014-12-02 16:54:56
'category_list'看起来像什么?什么是数据?请提供有用的和有意义的代码。 – wenzul 2014-12-02 16:59:47
@MartijnPieters它不仅更具可读性,而且也是正确的,因为OP只填入'category_dict'只引用同一个[[0,0]'list_,当然当他增加一个值时,所有的值字典也会增加。 – gboffi 2014-12-02 21:52:45