@kirrik007

Агрегация данных из словаря Python?

Есть список: [{'name': 'Иван', 'возраст': '23'}, {'name': 'Иван', 'возраст': '25'}, {'name': 'Пётр', 'возраст': '34'}, {'name': 'Пётр', 'возраст': '37'}]
Нужно агрегировать данные так, чтобы вывод был вида: [{'Иван': ['23', '25']}, {'Пётр': ['34', '37']}]
Как это можно сделать?
p.s. Сорри за вопрос заранее (если он покажется "глупым"), но что-то не могу разобраться как это организовать...
  • Вопрос задан
  • 280 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
from collections import defaultdict

a =  [
    {'name': 'Иван', 'возраст': '23'},
    {'name': 'Иван', 'возраст': '25'},
    {'name': 'Пётр', 'возраст': '34'},
    {'name': 'Пётр', 'возраст': '37'}
]
d = defaultdict(list)

for i in a:
    d[i['name']].append(i['возраст'])
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Nyamistaya
К чему лишние библиотеки?
a =  [
    {'name': 'Иван', 'возраст': '23'},
    {'name': 'Иван', 'возраст': '25'},
    {'name': 'Пётр', 'возраст': '34'},
    {'name': 'Пётр', 'возраст': '37'}
]
d = [{dct.get('name'):dct.get('возраст')} for dct in a]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы