Von einem Kommentar:
Ich will jeden Satz sortieren.
Das ist einfach. Für jede s
gesetzt (oder irgendetwas anderes iterable), sorted(s)
gibt eine Liste der Elemente von s
in sortierter Reihenfolge:
>>> s = set(['0.000000000', '0.009518000', '10.277200999', '0.030810999', '0.018384000', '4.918560000'])
>>> sorted(s)
['0.000000000', '0.009518000', '0.018384000', '0.030810999', '10.277200999', '4.918560000']
Beachten Sie, dass sorted
Sie eine list
schenkt, kein set
. Das ist, weil der ganze Punkt eines Satzes, sowohl in mathematics als auch in almost every programming language, * ist, dass es nicht bestellt ist: die Sätze {1, 2}
und {2, 1}
sind der gleiche Satz.
Sie wahrscheinlich nicht wirklich wollen, diese Elemente als Strings sortieren, sondern als Zahlen (so wird 4,918560000 kommen vor 10,277200999 anstatt nach).
Die beste Lösung ist die Speicherung der Zahlen in erster Linie als Zahlen und nicht als Zeichenfolgen. Aber wenn nicht, brauchen Sie nur eine key
Funktion zu verwenden:
>>> sorted(s, key=float)
['0.000000000', '0.009518000', '0.018384000', '0.030810999', '4.918560000', '10.277200999']
Weitere Informationen finden Sie im Sorting HOWTO in den offiziellen Dokumenten sehen.
* Siehe die Kommentare für Ausnahmen.
Was haben die Tupel mit dem Problem zu tun und was haben Sie versucht? –
Ich glaube nicht, dass Python-Sets ein Ordnungskonzept haben. Dies könnte Ihnen helfen: http://StackOverflow.com/Questions/1653970/does-python-have-an-ordered-set – zallarak
ein Set ist ohne Reihenfolge. das ist eine seiner Eigenschaften. in jeder Sprache. Verwende eine 'liste'. –