Как переделать список словарей с одинаковыми ключами в один словарь, в котором в качестве ключей будут те же ключи, а в качестве значений - список
Прошу помочь. Есть список словарей:
long_term = [{1:-20, 2: 10, 3: 25},
{1:15, 2: 14, 3: 33},
{1:8, 2: -2, 3: 16}]
Нужно создать словарь:
new = {1:[-20, 15, 8]
2:[10, 14, -2]
3:[25, 33, 16]}
Есть варианты, как это сделать?
Ответы (1 шт):
Автор решения: Михаил Муругов
→ Ссылка
from itertools import chain
long_term = [{1:-20, 2: 10, 3: 25}, # Входные данные
{1:15, 2: 14, 3: 33},
{1:8, 2: -2, 3: 16}]
new = {} # Словарь для формирования
for key, value in chain.from_iterable(map(dict.items, long_term)): # Пробегаемся по парам ключ: значение каждого словаря
new.setdefault(key, []).append(value) # Если по ключу нет списка, то создаём его, добавляем в список значение