Liste mit Werten und zugehörigen Wörtern sortieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Artikel
User
Beiträge: 1
Registriert: Freitag 16. Juli 2021, 16:46

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
Benutzeravatar
__blackjack__
User
Beiträge: 13107
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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()
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten