* Builtin-Funktion zum sortieren beliebiger Iterateables (tuple, namedtuple, list, dict) * man kann optional definieren nach welchen Kriterien die Einträge sortiert werden sollen (zum Beispiel bei list, dict, tuple nach einem bestimmten Index, bei namebdtuples, Objekten nach einem Attribut usw.) * intern iteriert sorted über die Felder/Einträge im übergebenen Iterateable * hierzu muss eine Funktion (lambda) übergeben werden, die bekommt als Parameter bei jeder Iteration den aktuellen Eintrag/Feld aus dem Iterateable und muss den Wert/Feld aus dem Eintrag zurückgeben nach dem sortiert werden soll * zurück kommt eine sortierte Liste mit den Einträgen des Eingabe-Iterateables persons = [{"vorname":"peter", "nachname":"schäfer", "alter":45}, {"vorname":"Alexander", "nachname":"Brand", "alter":22}, {"vorname":"Hildebert", "nachname":"König", "alter":89}] print(sorted(persons, key=lambda person: person.alter)) Obiges Beispiel würde zurückgeben: [{"vorname":"Alexander", "nachname":"Brand", "alter":22}, {"vorname":"peter", "nachname":"schäfer", "alter":45}, {"vorname":"Hildebert", "nachname":"König", "alter":89}] \\ Weil in die lambda-Funkion die den key-Parameter (der muss benamt sein) speist bei jedem neuen Element was sorted aus "persons" ausließt den aktuellen Wert/Feld aus "persons" bekommt als Variable "person" und aus "person" (dict) das Feld "alter" zurückgibt, welches dann zum sortieren der Einträge genutzt wird. \\ \\ * angegeben werden muss nur das Iterateable -> das ist für eine liste von Strings oder ints ausreichend, es werden dann einfach nur die Elemente sortiert * key-Parameter definiert bei komplexern Einträgen im übergebenen Iterateable welcher Attribut/Feld als Sortierschlüssel benutzt werden soll -> es wird dann nur danach sortiert * es sind auch Kombinationen aus mehreren Feldern/Attributen möglich, in dem lambda ein tuple aus diesen bildet und zurück gibt (key nimmt nur einen Wert an)