[python] Добавить элементы в список словарей



Answers

Вместо этого используйте collections.defaultdict .

http://docs.python.org/library/collections.html#defaultdict-objects

Чуть проще.

Question

У меня очень длинный список словарей со строковыми индексами и целыми значениями. Многие ключи одинаковы во всех словарях, хотя и не все. Я хочу создать один словарь, в котором ключи являются объединением ключей в отдельных словарях, а значения представляют собой сумму всех значений, соответствующих этому ключу в каждом из словарей. (Например, значение для ключа «яблоко» в объединенном словаре будет суммой значения «яблоко» в первом, плюс сумма значения «яблоко» во втором и т. Д.)

У меня есть следующее, но это довольно громоздко и требует времени для выполнения. Есть ли более простой способ добиться того же результата?

comb_dict = {}  
for dictionary in list_dictionaries:  
    for key in dictionary:  
        comb_dict.setdefault(key, 0)  
        comb_dict[key] += dictionary[key]  
return comb_dict



Вы могли бы вдохновить Google на уменьшение карты. Насколько я понимаю, он был разработан для решения именно такого рода проблем.




Related