Sortieren einer Liste mit Dictionarys
Wir haben eine Liste mit Dictionarys die wir nach einem Key sortieren wollen.
Hier unsere Liste für dieses Beispiel:
unsorted_list = [
{'vorname':'Klaus', nachname':'Meier', 'alter':57},
{'vorname':'Lars, nachname':'Stieg', 'alter':23},
{'vorname':'Chris', nachname':'Berg', 'alter':55},
{'vorname':'Axel', nachname':'Neue', 'alter':33},
{'vorname':'Max', nachname':'Muster', 'alter':41},
]
1.Methode - Schritt für Schritt
Zum sortieren nutzen wir folgende Methode:
def sort_diclist(unsorted_list, sort_on):
li = [ (dic[sort_on], dic) for dic in unsorted_list ]
li.sort()
result = [ dict for (key, dict) in li ]
return result
Jetzt können wir unsere Dictionary-Liste nach dem Nachnamen sortieren:
sorted_list = sort_diclist(unsorted_list, 'nachname')
So erhalten wir unsere Liste zurück, die jetzt nach dem Nachnamen sortiert ist!
2. Methode - Lamda/Sorted (deutlich eleganter)
sorted_list = sorted(unsorted_list, key=lambda entry: entry['nachname'])