如果我正在閱讀各種對象並遞增其相應字典鍵(例如,類別)的值,其中字典的值是列表,則所有字典條目最後得到相同的值,這是所有值的總和,而不是預期的值。如果字典的值是一個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