In einer ruhigen Samstagnacht ein paar Rätselprobleme lösen (wooohoo ... nicht) und mich mit sort () abmühen. Die Ergebnisse sind nicht ganz das, was ich erwarte. Das Programm durchläuft jede Kombination von 100 - 999 und prüft, ob das Produkt ein Palindom ist. Wenn dies der Fall ist, fügen Sie sie der Liste hinzu. Ich brauche die Liste sortiert: D Hier ist mein Programm:
%Vor%welche Netze:
%Vor%Klar Index 0 ist größer als 1. Irgendeine Idee was ist los? Ich habe das Gefühl, dass es etwas mit nachlaufenden / führenden Nullen zu tun hat, aber ich habe mich kurz umgeschaut und kann das Problem nicht sehen.
Bonuspunkte, wenn du weißt, wo das Puzzle herkommt: P
Sie sortieren Zeichenketten, nicht Zahlen. '101101' < '10201'
weil '1' < '2'
. Ändere list.append(reversed)
in list.append(int(reversed))
und es funktioniert (oder verwende eine andere Sortierfunktion).
Sort macht seine Arbeit. Wenn Sie beabsichtigen, ganze Zahlen in der Liste zu speichern, nehmen Sie Lukáš-Rat. Sie können auch sortieren, wie Sie sortieren, zum Beispiel indem Sie ints machen:
%Vor%Der Schlüsselparameter verwendet eine Funktion, die ein Element berechnet, um den Platz des Listenobjekts in allen Vergleichen zu übernehmen. Eine Ganzzahl wird numerisch wie erwartet verglichen.
( list
ist übrigens ein wirklich schlechter Variablenname, da Sie den eingebauten list () -Typ überschreiben!)
Ihre Liste enthält Zeichenfolgen, so dass sie alphabetisch sortiert werden. Versuchen Sie, die Liste in Ganzzahlen umzuwandeln und sortieren Sie dann.