私は、アルゴリズムの結果をアキュムレータに蓄積する洗練された方法を探しています。辞書の結果のリストを蓄積する
accumulator = { "k1": 15, "k2": 0, "k3": 12}
# Output of the algorithm values[i] matches keys[i]
keys = ["k1", "k2", "k3"]
values = [ 12, 13 , 14]
ここでは私の問題を解決する2つの解決方法がありますが、私は最高のものがあると確信していません。
ループ
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