hallo
Ich habe eine Übungsaufgabe für die schule zu erledigen. Es hat soweit eigentlich geklappt aber ich muss das jetzt noch sortieren.
folgendes Problem: Ich habe 2 Listen, diese will ich sortiert haben
Liste1 = [ variable_1a, variable_2a, variable_3a, variable_4a ]
Liste2 = [ variable_1b, variable_2b, variable_3b, variable_4b ]
Ich will nun Liste2 sortieren ( Liste2 sind alles Zahlen )
Liste2.sort() <-- geht das überhaupt ?
Nach dem sortieren soll Liste 2 mit der kleines Zahl beginnen und mit der größten aufhören. Wie man aber vielleicht an meinem Beispiel ( hoffentlich ) erkennen kann sollen die Listen irgendwie verknpüpft werden. Sprich wenn das 3. Element aus der 2. Liste nach dem sortieren an erster Stelle steht soll auch das 3. Element der 1. Liste an erster Stelle sein.
Kurz: Ich sortiere Liste 2 und egal was in Liste 1 steht sollen die Elemente die Position genauso wechseln wie unten. 1a und 1b gehören also zusammen, genauso wie 2a und 2b
Wie man sieht bin ich noch nicht so weit im programmieren ich hoffe mir kann deshalb jemand helfen.
Sortierfrage
Da das eine Hausaufgabe ist, wird es schwierig Dir dann zu helfen, wenn man Dir nicht gleich eine komplette Lösung verraten will.
Ein bisschen Eigeninitiative wäre nicht schlecht. Ob `Liste2.sort()` überhaupt geht, kannst Du ganz einfach *ausprobieren*, da brauchst Du nicht fragen.
Bei der Problemstellung stellt sich auch die Frage warum die Daten in zwei Listen vorliegen. Üblicherweise würde man zusammengehörige Daten nicht in zwei "parallelen" Datenstrukturen speichern, sondern in einer. Zum Beispiel eine Liste mit Tupeln bei denen der für die Sortierung wichtige Teil weiter vorne steht, weil man dann einfach ganz normal sortieren kann.
Damit ist auch schon ein Lösungsweg da: Aus den beiden *eine* Liste mit Tupeln erstellen, diese Liste sortieren, und dann wieder in zwei Listen aufteilen. Von den eingebauten Funktionen könnte dazu `zip()` ganz interessant sein.
Ein bisschen Eigeninitiative wäre nicht schlecht. Ob `Liste2.sort()` überhaupt geht, kannst Du ganz einfach *ausprobieren*, da brauchst Du nicht fragen.
Bei der Problemstellung stellt sich auch die Frage warum die Daten in zwei Listen vorliegen. Üblicherweise würde man zusammengehörige Daten nicht in zwei "parallelen" Datenstrukturen speichern, sondern in einer. Zum Beispiel eine Liste mit Tupeln bei denen der für die Sortierung wichtige Teil weiter vorne steht, weil man dann einfach ganz normal sortieren kann.
Damit ist auch schon ein Lösungsweg da: Aus den beiden *eine* Liste mit Tupeln erstellen, diese Liste sortieren, und dann wieder in zwei Listen aufteilen. Von den eingebauten Funktionen könnte dazu `zip()` ganz interessant sein.
-
- User
- Beiträge: 77
- Registriert: Samstag 24. März 2007, 23:22
- Wohnort: Germany,NRW,
genau, probier einfach mal List2.sort() aus und schau was dir angezeigt wird, deinen Rechner schrottest du damit nicht
Wenn du dann die Reihenfolge der Liste ändern willst, probier es mal mit List2.reverse()
Gruß BlackMamba
Wenn du dann die Reihenfolge der Liste ändern willst, probier es mal mit List2.reverse()
Gruß BlackMamba
Ich habe mich wohl missverständlcih ausgedrückt
List2.sort() ob das funktioniert war nur die frage ob er mit der kleinsten zahl anfängt.
was für mich _der punkt_ ist, dass wenn list2 sortiert wird auch die liste1 sortiert wird.
List2.sort() ob das funktioniert war nur die frage ob er mit der kleinsten zahl anfängt.
was für mich _der punkt_ ist, dass wenn list2 sortiert wird auch die liste1 sortiert wird.
....Und was ist falsch verstanden wurden? Nimm den Intepreter und schreib:Brok hat geschrieben:Ich habe mich wohl missverständlcih ausgedrückt
List2.sort() ob das funktioniert war nur die frage ob er mit der kleinsten zahl anfängt.
was für mich _der punkt_ ist, dass wenn list2 sortiert wird auch die liste1 sortiert wird.
Code: Alles auswählen
Liste2 = [2,4,1,9,4]
Liste2.sort()
print Liste2
Und wie BlackJack schon unschwer bemerkte, schau dir mal das Modul Zip an und les mal was über Tupel. Wir können dir einfach keinen fertigen Quellcode geben, dass würde dir einfach überhaupt nichts bringen.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
BlackJack meinte das Built-in ``zip()`` nicht das Modul ``zipfile`` welches etwas völlig anderes macht.BlackVivi hat geschrieben:schau dir mal das Modul Zip an
Zuletzt geändert von Leonidas am Donnerstag 30. August 2007, 21:41, insgesamt 1-mal geändert.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ach ich denke man kann auch fertigen Quelltext geben:
Wenn er seinem Lehrer erklären kann warum/wie das funktioniert, hat er sich auch 'ne gute Note verdient.
Code: Alles auswählen
def main():
a = ['a', 'b', 'c', 'd']
b = [3, 1, 0, 2]
a, b = map(list, zip(*sorted(zip(b, a))))
print a
print b