в python sorted
работает так, как вы хотите, с целыми числами:
>>> sorted([10,3,2])
[2, 3, 10]
похоже, у вас есть проблема, потому что вы используете строки:
>>> sorted(['10','3','2'])
['10', '2', '3']
(потому что порядок строкначинается с первого символа, а «1» предшествует «2», независимо от того, какие символы следуют), что можно исправить с помощью key=int
>>> sorted(['10','3','2'], key=int)
['2', '3', '10']
, который преобразует значения в целые числа во время сортировки (itвызывается как функция - int('10')
возвращает целое число 10
)
и, как предлагается в комментариях, вы также можете отсортировать сам список, а не генерировать новый:
>>> l = ['10','3','2']
>>> l.sort(key=int)
>>> l
['2', '3', '10']
но я бы посмотрел, почему у тебя вообще есть струны.Вы должны быть в состоянии сохранить и получить целые числа.похоже, что вы сохраняете строку, когда вы должны сохранить int?(sqlite необычен для баз данных, поскольку он хранит данные в том же виде, что и заданный, даже если тип столбца таблицы отличается).
и, как только вы начнете сохранять целые числа, вы также можетевернуть список обратно из sqlite, добавив order by ...
к команде sql:
select temperature from temperatures order by temperature;