Cómo ordenar Python lista de cadenas de números

Estoy tratando de ordenar la lista de cadenas que contienen números

a = ["1099.0","9049.0"] a.sort() a ['1099.0', '9049.0'] b = ["949.0","1099.0"] b.sort() b ['1099.0', '949.0'] a ['1099.0', '9049.0'] 

Pero la lista b está ordenando y no lista a

Desea ordenar según los valores float (no los valores de cadena), así que intente:

 >>> b = ["949.0","1099.0"] >>> b.sort(key=float) >>> b ['949.0', '1099.0'] 

use una lambda dentro de la clasificación para convertirlos a flotar y luego ordene adecuadamente:

 a = sorted(a, key=lambda x: float(x)) 

por lo que los mantendrá como cadenas, pero ordenados por valor y no lexicográficamente

Conviértalos a int o float o incluso decimal (ya que tiene números finales)

 >>> b = [float(x) for x in b] >>> b.sort() >>> b [949.0, 1099.0] 

Ambos están ordenados. ‘1’ viene antes de ‘9’. Mira aquí: mesa de ascii