Задать вопрос
Dunaevlad
@Dunaevlad

Как из одного словаря, перенести данные в другой словарь или массив?

Есть следующий список со словарём:
odds = [
    {'Date': '2021-11-20T12:30:00Z', 'Odds': 4.55, 'Team': 'Leicester City'},
    {'Date': '2021-11-28T14:00:00Z', 'Odds': 1.47, 'Team': 'Leicester City'},
    {'Date': '2021-11-20T15:00:00Z', 'Odds': 2.75, 'Team': 'Burnley'},
    {'Date': '2021-11-28T14:00:00Z', 'Odds': 3.55, 'Team': 'Burnley'},
]

Как мне перенести из словаря данные, так что бы не было повторяющихся названий команд, но остались кеффы, например:
{'Date': '2021-11-20T12:30:00Z', 'Odds1': 4.55,  'Odds2': 1.47, 'Team': 'Leicester City'},
  • Вопрос задан
  • 214 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
aRegius
@aRegius
Python Enthusiast
defaultdict
Попробуйте такой вариант:
temp_data = defaultdict(list)

for data in odds:
	  temp_data[data['Team']].append((data['Odds'], data['Date']))

temp_data = {key: zip(*value) for key, value in temp_data.items()}
new_data = [dict(Team=team, Odds=odds, Date=date) for team, (odds, date) in temp_data.items()]
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@MaratPetrov96
odds = [
    {'Date': '2021-11-20T12:30:00Z', 'Odds': 4.55, 'Team': 'Leicester City'},
    {'Date': '2021-11-28T14:00:00Z', 'Odds': 1.47, 'Team': 'Leicester City'},
    {'Date': '2021-11-20T15:00:00Z', 'Odds': 2.75, 'Team': 'Burnley'},
    {'Date': '2021-11-28T14:00:00Z', 'Odds': 3.55, 'Team': 'Burnley'},
]

new=[]
for i in odds:
    new.append(dict())
    for k,v in i.items():
        new[-1][k]=v


Надеюсь, суть вы поняли

(Отредактировал ответ. Извиняюсь, привыкаю писать код здесь, удалите, пожалуйста, комменты с ошибками)
Ответ написан
Ваш ответ на вопрос

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

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