Anfängerfrage: Liste 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
LinuxRambo
User
Beiträge: 4
Registriert: Dienstag 5. Oktober 2021, 07:05

Hallo zusammen,

aktuell beschäftige ich mich mit Listen.

Hier kurz mein Code:

Code: Alles auswählen

# Anlegen einer Liste und mit Tieren und deren Namen
liste_1 = ["Hund", "Bello", "Ratte", "Casiopeia", "Kater", "Merlin"]

liste_3 = [["Hund", "Bello"], ["Ratte", "Casiopeia"], ["Kater", "Merlin"]]

# Ausgabe der liste_3
print("Original: " + str(liste_3))
print("")

# liste_3 nach Art des Tieres sortieren und ausgeben
print("Sortiert nach Art des Tieres: " + str(sorted(liste_3, key = lambda x: x[0])))
print("")

# liste_3 nach Tiernamen sortieren und ausgeben
print("Sortiert nach Tiernamen: " + str(sorted(liste_3, key = lambda x: x[1])))
print("")
Die Ausgabe klappt und alles ist gut. ;-)

Meine Frage:
Ist es möglich liste_1 ebenso zu sortieren wie liste_3?
Welches Vorgehen würde sich empfehlen?
Index 0 und Index 1 gehören ja zusammen (sowie Index 2 und Index 3 usw.).
Beim Sortieren der liste_1 ginge mir diese Zuordnung ja verloren.

Danke und Gruß
LiRo
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Nicht wirklich. Wenn deine Daten so strukturiert sind wie in Liste 1, musst du sie erst in eine Struktur wie Liste zwei überführen, dann sortieren, und dann wieder plätten. Und genau weil das komisch ist, und man eine solche inhärente Zuordnung von wertepaaren nicht erkennen kann, macht man das auch nicht, und repräsentiert Daten nicht wie in Liste 1.
LinuxRambo
User
Beiträge: 4
Registriert: Dienstag 5. Oktober 2021, 07:05

__deets__ hat geschrieben: Dienstag 5. Oktober 2021, 11:40 Nicht wirklich. Wenn deine Daten so strukturiert sind wie in Liste 1, musst du sie erst in eine Struktur wie Liste zwei überführen, dann sortieren, und dann wieder plätten. Und genau weil das komisch ist, und man eine solche inhärente Zuordnung von wertepaaren nicht erkennen kann, macht man das auch nicht, und repräsentiert Daten nicht wie in Liste 1.
Na dann ist ja alles klar ;-)

Danke und Gruß
LiRo
Antworten