So che sembra banale ma non mi sono reso conto che la funzione sort()
di Python era strana. Ho una lista di "numeri" che sono effettivamente in forma di stringa, quindi prima li converto in int, quindi cerco un ordinamento.Come ordinare una lista numericamente?
list1=["1","10","3","22","23","4","2","200"]
for item in list1:
item=int(item)
list1.sort()
print list1
Mi dà:
['1', '10', '2', '200', '22', '23', '3', '4']
Quello che voglio è
['1','2','3','4','10','22','23','200']
Ho guardato intorno per alcuni degli algoritmi di ordinamento associati insiemi numerici, ma quelli che ho trovato tutto comportano l'ordinamento di set alfanumerici.
So che questo è probabilmente un problema facile soluzione ma Google e il mio libro di testo non offrono nulla di più o meno utili rispetto alla funzione .sort()
.
Nota che il tuo ciclo for non fa quello che sospetto che tu pensi che faccia. – deinst
In nessun momento hai aggiornato 'lista1'. Cosa ti ha fatto pensare che 'list' fosse in aggiornamento? –
Il problema simile si alza quando list1 = ['1', '1.10', '1.11', '1.1', '1.2'] viene fornito come input. Invece di ottenere output come ['1', '1.1', '1.2', '1.10', '1.11'], sto ricevendo ['1', '1.1', '1.10', '1.11', '1.2' ] – sathish