Давайте обсудим различные методы выполнения задачи.
Способ № 1: использование оператора reduce() +
# Код Python для демонстрации
# возвращает сумму значений словаря ‚Äã ‚Äã
# с одинаковыми ключами в списке словарей
импорт
коллекции, functools, оператор
# Инициализация списка словарей
ini_dict
=
[{
` a`
:
5
,
`b`
:
10
<кодовый класс ="plain ">, ` c`
:
90
} ,
{
`a`
:
45
,
`b`
:
78
},
{
`a`
:
90
,
`c`
:
10
}]
# вывести исходный словарь
print
(
"начальный словарь"
,
str
(ini_dict))
# суммирует значения ‚ Äã‚Äãс теми же ключами
result
=
dict
(functools.
уменьшить
(operator.add,
map
(collections.Counter, ini_dict)))
print
(
"результирующий словарь:"
,
str
(результат))
Вывод:
начальный словарь [{`b`: 10, `a`: 5, `c`: 90}, {`b`: 78, `a`: 45}, {`a`: 90, `c`: 10} ]
результирующий словарь: {`b`: 88, `a`: 140, `c`: 100}
Способ № 2: Использование счетчика
# код Python для демонстрации
# возвращает сумму значений словаря ‚Äã‚Äã
# с одинаковыми ключами в списке словаря
я port
collections
# Инициализация списка словарей
ini_dict
=
[{
` a`
:
5
,
`b`
:
10
,
`c`
:
90
},
{
`a`
:
45
,
` b`
:
78
},
{< /код> <с ode class = "string"> `a`
:
90
,
`c`
:
10
}]
# распечатать исходный словарь
print
(
" начальный словарь "
,
str
(ini_dict))
# суммировать значения с одинаковыми ключами
counter
=
collections.Counter ()
for
d
в
ini_dict:
counter.update (d)
result
=
dict
(счетчик)
print
(
"результирующий словарь:"
,
str
( counter))
Выход:
начальный словарь [{`c`: 90, `a`: 5, ` b`: 10}, {`a`: 45, `b`: 78}, {`a`: 90, `c`: 10}]
результирующий словарь: Counter ({`a`: 140, ` c`: 100, `b`: 88})
Способ № 3: Наивный метод
# Код Python для демонстрации
# возвращает словарь суммы значений
# с теми же ключами в словаре l ist
from
оператор
импортировать
элемент getter
# Инициализация списка словарей
ini_dict
=
[{
` a`
:
5
,
`b`
:
10
,
`c`
:
90
},
{
`a`
:
45
`b`
:
78
},
{
`a`
:
90
,
` c`
:
10
}]
# напечатать исходный словарь
напечатать
(
"начальный словарь"
,
str
(ini_dict))
# суммирует значения ‚ Äã‚Äãс теми же ключами
result
=
{}
for
d
in
ini_dict:
for
k
in
d.keys():
result [k]
=
result.get (k,
0
)
+
d [k]
print
(
" результирующий словарь: "
,
str
(результат))
Выход:
начальный словарь [{`b ` : 10, `с`: 90, `а`: 5}, {`b`: 78,`a`: 45}, {`c`: 10,`a`: 90}]
результирующий словарь: {`b`: 88, `c`: 100, `a` : 140