Seite 1 von 1

Liste mit Werten und zugehörigen Wörtern sortieren

Verfasst: Freitag 16. Juli 2021, 16:52
von Artikel
Hallo zusammen,

ich möchte gerne eine Liste sortieren können, die mit Wörtern und den dazugehörigen Werten besteht. Als Beispiel ist Apfel = 1, Birne = 3 und Banane = 10. Nun möchte ich, dass beim Ausführen des Programms eine Art Rangliste ausgegeben wird, die sowas zum Beispiel anzeigt:

1. Banane mit 10 Punkten
2. Birne mit 3 Punkten
3. Apfel mit 1 Punkt.

Ich hoffe mir kann jemand weiterhelfen!

Mit freundlichen Grüßen

Re: Liste mit Werten und zugehörigen Wörtern sortieren

Verfasst: Freitag 16. Juli 2021, 20:35
von __blackjack__
@Artikel: Listen haben eine `sort()`-Methode. Falls man die Liste selbst nicht verändern möchte, gibt es die `sorted()`-Funktion. Du suchst da eventuell das `key`- und das `reverse`-Argument bei `sort()` oder `sorted()`‽

Code: Alles auswählen

#!/usr/bin/env python3
from operator import itemgetter


def main():
    items = [("Apfel", 1), ("Banane", 10), ("Birne", 3)]
    
    for number, (name, points) in enumerate(
        sorted(items, key=itemgetter(1), reverse=True), 1
    ):
        print(
            "{}. {} mit {} Punkt{}.".format(
                number, name, points, "" if points == 1 else "en"
            )
        )


if __name__ == "__main__":
    main()