He creado una base de datos sqlite que tiene una tabla que almacena valores de temperatura. Los valores de temperatura se escriben en la base de datos en orden ascendente por primera vez. Luego leo los valores de temperatura de la base de datos en una lista y luego agrego esa lista a un cuadro combinado para seleccionar temperaturas: funciona bien.Python: cómo ordenar una lista de valores numéricos en orden ascendente
La lista resultante es, dicen:
templist = ['25', '50', '100', '150', '200', '250', '300'].
Luego añadir un nuevo valor de temperatura, por ejemplo, '33' a la base de datos.
Se adjunta al final de la tabla. Si leo las temperaturas ahora, la lista se convertirá en:
['25', '50', '100', '150', '200', '250', '300', '33'].
Si hago templist.sort()
o sorted(templist)
, el resultado final es
['150', '200', '25', '250', '300', '33', '50']
¿Hay alguna manera sencilla para ordenar la lista en orden ascendente por lo que me sale:
['25', '33', '50', '100', '150', '200', '250', '300']
Diría que tienes problemas con el tipo de cosas en tu lista. Si están ordenando así, probablemente sean cadenas en lugar de enteros. Sin ver el código que los saca de sqlite y su esquema, es difícil proponer la solución adecuada para usted. –