2 つの辞書を考えてみましょう。
d1 = {'current': [[1369713600, 29], [1369756800, 47], [1369800000, 34]],
'curr_total': 110,
'past': [[1368417600, 2], [1368460800, 70], [1368504000, 10]],
'past_total': 82}
d2 = {'current': [(1369713601, 23), (1369756800, 87), (1369800000, 7)],
'curr_total': 117,
'past': [(1368417600, 100), (1368460800, 7), (1368504000, 9)],
'past_total': 116}
- 最初の辞書では、一部の値は整数 (合計) であり、その他の値はリストのリストです
- 2 番目の辞書では、一部の値は整数 (合計) であり、他の値はタプルのリストです。
- 両方の辞書には、「current」、「cure_total」などの共通キーがあります。
- 両方の辞書の同じキーの場合、リスト/タプルの最初の値は同じでもそうでなくてもかまいません。
これに基づいて、このような辞書が必要です。
f = {'current': [[1369713600, 29], [1369713601, 23], [1369756800, 134], [1369800000, 41]],
'curr_total': 227,
'past': [[1368417600, 102], [1368460800, 77], [1368504000, 19]],
'past_total': 198}
私の試みは次のとおりです。
for i in fo,pl:
for j in i:
if total.get(j):
total[j] += i[j]
else:
total[j] = i[j]
しかし、最初の値が同じ場合、対応するリストとタプルの 2 番目の値が集計されないことがわかりましたか? 私のやり方はとても素朴ですか?誰かがこれを行うためのよりPythonicで効率的な方法を提案できますか?