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'])

 

Neuen Kommentar hinzufügen

Sie können einen Kommentar abgeben, indem Sie das unten stehende Formular ausfüllen. Nur Text.

Ihre E-Mail-Adresse wird nicht veröffentlicht