Я гуглил по слиянию словарей, но результаты, на которые я смотрел, предполагали замену значения.То есть, если вы диктуете, как {'config_prop': 2}
, а другое, как {'config_prop': 7}
, конечный результат слияния будет {'config_prop': 7}
.Я хочу {'config_prop': 9}
.
Мой наивный подход заключается в следующем, который работает, но довольно медленный.
split_output = [{'some_prop': 1}, {'some_prop': 2, 'other_prop': 19}]
combined_output = {}
for d in split_output:
if combined_output == {}:
combined_output = d.copy()
else:
for key, value in d.items():
if key in combined_output:
combined_output[key] = combined_output[key] + value # add to existing val
else:
combined_output[key] = value
Я хотел бы услышать предложения о лучшем способе сделатьэтот.Спасибо!
Обновление: я пробовал это, но это значительно медленнее, чем мой исходный код:
final_count = Counter()
for d in split_output:
final_count += Counter(d)
final_output = dict(final_count)