我正在尋找一個優雅和高性能的方法,累積到累加器的算法的結果。積累結果列表到一個字典
accumulator = { "k1": 15, "k2": 0, "k3": 12}
# Output of the algorithm values[i] matches keys[i]
keys = ["k1", "k2", "k3"]
values = [ 12, 13 , 14]
這裏有兩個解決方案可以解決我的問題,但我不相信有最好的解決方案。
簡單的for循環
for i in range(0, len(keys)):
accumulator[keys[i]] += values[i]
使用發電機
accumulator = {keys[i]: accumulator[i] + values[i] for i in rage(0, len(keys))}
編輯: - 字典的所有按鍵將出現在密鑰列表。
您的生成器版本將會丟失'accumulator'中的任何不屬於'keys'的條目。 –
這不是一個問題,所有存在於累加器中的鍵都會出現在鍵列表中(我編輯了問題)。 – moeryn
你想創建一個'dict(zip(keys,values))'並用它更新'Counter'? (不適合不計數的東西,介意。) – Ryan