ich in Python lesen ein Protokoll, das Namen, Speicher enthält, ncalls für jede Zeile und diese Liste als Tupel speichern, wobei jedes Element ist ein Tupel (Name, Speicher, ncalls) manchmal müssen Sie die Liste nach Namen anderen Zeiten nach Speicher oder ncalls sortieren. Das Problem, wenn ich einfach den Code verwendenWerte als String sortiert, aber ich möchte, dass sie als Zahl sortieren in Python
mylist=sorted(mylist, key=itemgetter(2))
die Liste sortiert wird, um die gewünschten Parameter verwenden, aber Python den Parameter wie ein String betrachten und ich dieses Ergebnis
item3, 45, 1
item1, 4, 12
item4, 65, 3
item2, 65, 5
das gewünschte Ergebnis wäre
item3, 45, 1
item4, 65, 3
item2, 65, 5
item1, 4, 12
weil 3 und 5 sind kleiner als 12
Wie kann ich das lösen, ohne die Art und Weise zu ändern, wie ich die Liste speichere?
Warum übernimmt String Sortierung dass '12' größer als' 3' ist? – Selcuk
Bitte benennen Sie Ihre Variable um - 'list' ist eine eingebaute Funktion und Sie überschreiben es mit' list = sorted (...) ' – soon
Ihre Ausgabe schlägt vor:' itemgetter (2)) 'bedeutet nicht jede letzte Zahl in Ihrer Eingabe, wie Selcuk schlägt 3 würde nicht vor 12 kommen –