例如,從值存儲為列表的字典開始:
ID_TypeDict = {2: [0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0], 3: [0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0], 4: [1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0]}
我的目標是對列表值求和並將該值作為 int 或 float 分配給 dict 鍵。首先,我執行了以下操作:
TypeSum = dict(zip(ID_TypeDict.keys(), [[sum(item)] for item in ID_TypeDict.values()]))
它將值作為具有單個浮點值的列表返回:
{2: [1.0], 3: [1.0], 4: [2.0]}
我怎樣才能將 dict 值分配給沒有列表的鍵?我嘗試分配值來代替列表對象(下面的代碼片段),但這不是正確的方法,因為它不會改變任何東西:
for val in TypeSum.values():
for item in val:
val = [0]
實現這一目標的有效但最佳實踐方法是什麼?是否應該在生成 TypeSum dict(對列表值求和)的同一行代碼中完成?還是事後處理?提前致謝。
只需使用 dict-comprehension,您可以在其中分配聚合值,為每個鍵的列表調用函數。
>>> {k:sum(v) for k,v in ID_TypeDict.items()}
{2: 1.0, 3: 1.0, 4: 2.0}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句