Python Newbe hier. Ich habe Stack Overflow angeschaut, kann aber keine genau ähnliche Frage finden. Ich versuche, eine Liste von Dicts zusammenzuführen, die den gleichen Schlüssel und die gleichen Werte haben (also in meinem Fall zusammenführen, wo der Name derselbe ist).Wie füge ich Liste von Dicts mit demselben Schlüssel zusammen, wo Werte gleich sind?
Dies ist meine aktuelle Liste:
current = [
{'name' : 'food festival', 'category' : ['Miscellaneous', 'Undefined'], 'venue' : 'venue_1', 'price_1' : 100, 'price_2' : 120, 'start' : '2017-10-04T14:30:00Z'},
{'name' : 'food festival', 'category' : ['Miscellaneous', 'Undefined'], 'venue' : 'venue_2', 'price_1' : 150, 'price_2' : 200, 'start' : '2017-11-04T14:30:00Z'},
{'name' : 'music festival', 'category': ['music', 'pop'], 'venue' : 'venue_3', 'price_1' : 300, 'price_2' : 320, 'start' : '2017-12-04T14:30:00Z'}
]
Und das ist, was ich zu erreichen versuchen:
final = [
{
'name': 'food festival',
'category': ['Miscellaneous', 'Undefined'],
'shows': [
{
'start': '2017-10-04T14:30:00Z',
'venue': 'venue_1',
'prices': [
{ 'price_1' : 100 },
{ 'price_2' : 120}
]
},
{
'start': '2017-11-04T14:30:00Z',
'venue': 'venue_2',
'prices': [
{ 'price_1': 150 },
{ 'price_2' : 200 }
]
}
]
},
{
'name': 'music festival',
'category': ['music', 'pop'],
'shows': [
{
'start': '2017-12-04T14:30:00Z',
'venue': 'venue_3',
'prices': [
{ 'price_1' : 300 },
{ 'price_2' : 320}
]
}
]
}
]
Ihre Änderung der „Preis“ Schlüssel sieht komplizierter als nur durch Schlüssel verschmelzenden .. Sind Sie sicher, dass Sie wollen, dass "Preise" eine Liste von Einzellängen sind? –
Ja, das wäre das wünschenswerteste Ergebnis - vielleicht hätte ich das im Titel und in der Erklärung etwas deutlicher machen sollen. –
Ich denke wie @IzaakvanDongen, warum verwenden Sie einfach keine Liste und der Index ist der Preis? 'Preise': [300, 320 '] – SD3L