LU04.L11 - Sortiere Studenten nach Noten
def sort_students_by_grade(students): """ Nutze die `sorted()` Funktion, um die Studenten basierend auf ihren Noten zu sortieren. Parameters: - students (list): Liste der Studenten und ihrer Noten. Returns: - list: Liste der sortierten Studenten. """ return sorted(students, key=lambda student: student[1], reverse=True) if __name__ == '__main__': students = [ ('Alice', 4.0), ('Bob', 3.5), ('Charlie', 4.25), ('David', 5.5), ('Manuel', 3.75) ] sorted_students = sort_students_by_grade(students) print(sorted_students)
Erklärung zur Musterlösung
In der Musterlösung für die Funktion sort_students_by_grade
verwenden wir die eingebaute Python-Funktion sorted()
, die eine Liste von Elementen in einer angegebenen Reihenfolge sortiert.
In unserem Fall haben wir eine Liste von Tupeln, wobei jedes Tupel aus einem Namen (String
) und einer Note (Float
) besteht. Da wir die Studenten basierend auf ihren Noten sortieren möchten, benötigen wir einen Weg, um sorted()
zu sagen, dass es die zweite Komponente jedes Tupels (den Float-Wert) für die Sortierung verwenden soll.
Das erreichen wir mit dem key Argument der sorted()
Funktion. Wir setzen es auf einen Lambda-Ausdruck, der ein Studenten-Tupel annimmt und seine Note (den zweiten Wert) zurückgibt: lambda student: student[1]
.
Das Argument reverse=True
gibt an, dass die Liste in absteigender Reihenfolge sortiert werden soll, sodass der Student mit der höchsten Note zuerst in der Liste erscheint.
Insgesamt ermöglicht diese Lösung eine effiziente und klare Sortierung der Studenten basierend auf ihren Noten.