Sé que esto suena trivial, pero no me di cuenta de que la función sort()
de Python era extraña. Tengo una lista de "números" que en realidad están en forma de cadena, así que primero los convierto en enteros, luego intento un ordenamiento.¿Cómo ordenar una lista numéricamente?
list1=["1","10","3","22","23","4","2","200"]
for item in list1:
item=int(item)
list1.sort()
print list1
me da:
['1', '10', '2', '200', '22', '23', '3', '4']
Lo que yo quiero es
['1','2','3','4','10','22','23','200']
He mirado en torno a algunos de los algoritmos asociados con la clasificación de los conjuntos numéricos, pero los que encuentran en todo implica ordenar conjuntos alfanuméricos.
Sé que este es probablemente un problema obvio, pero google y mi libro de texto no ofrecen nada más o menos útil que la función .sort()
.
Tenga en cuenta que su bucle for no hace lo que sospecho que cree que hace. – deinst
En ningún momento actualizó 'list1'. ¿Qué te hizo pensar que 'list' se estaba actualizando? –
El problema similar aumenta cuando list1 = ['1', '1.10', '1.11', '1.1', '1.2'] se proporciona como entrada. En lugar de obtener resultados como ['1', '1.1', '1.2', '1.10', '1.11'], obtengo ['1', '1.1', '1.10', '1.11', '1.2' ] – sathish