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)

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.


Kevin Maurizi

  • modul/m323/learningunits/lu04/loesungen/sorting2.txt
  • Zuletzt geändert: 2024/03/28 14:07
  • von 127.0.0.1