Ich versuche, eine Liste in Python zu sortieren, aber eine, die sowohl Buchstaben als auch Zahlen in demselben Begriff enthält. Das Problem mit der Art mit auf eine Zeichenfolge ist, dass es nicht die Zahlen richtig funktioniert sortieren:Sortieren einer kombinierten Liste von Zahlen und Buchstaben in Python
2
23
3
etc
list = [("a", ['8', '0']), ("a", ['7', '0b']), ("a", ['7', '0']), ("a", ['6', '0b']), ("a", ['6', '01']]
new_list = sorted(list, key=lambda i: i[1])
# works great on ints.
Die Buchstaben sortiert werden müssen, da es Zahl Äquivalent, das heißt:
a = 1, b = 2, c = 3, d = 4 etc
daher 4.1a
== 4.11
Aber ich brauche t o Bewahre den Buchstaben in der Ausgabe und wandle ihn nicht einfach in einen int um. Irgendwelche Ideen?
Was ist das erwartete Ergebnis für die Eingabe, die Sie gezeigt haben? – thefourtheye
Schreibe eine Funktion, die 'i [1]' in einen String konvertiert, ersetzt 'a' durch' 1', 'b' durch' 2' etc in der Zeichenkette und gibt dann den in float konvertierten String zurück Schlüssel "? – nekomatic
Das obige klingt perfekt. Ich werde versuchen, herauszufinden, wie man das macht (ich bin neu in fortgeschrittenem Python). –