Я знаю, что это звучит тривиально, но я не осознавал, что функция Python sort()
была странной. У меня есть список «чисел», которые на самом деле находятся в строковой форме, поэтому я сначала конвертирую их в ints, а затем пытаюсь сортировать.Как отсортировать список по номеру?
list1=["1","10","3","22","23","4","2","200"]
for item in list1:
item=int(item)
list1.sort()
print list1
дает мне:
['1', '10', '2', '200', '22', '23', '3', '4']
Что я хочу
['1','2','3','4','10','22','23','200']
Я огляделся для некоторых алгоритмов, связанных с сортировкой числовых наборов, но те, которые я нашел все включают сортировку буквенно-цифровых наборов.
Я знаю, что это, вероятно, не проблема, но google и мой учебник не предлагают ничего более или менее полезного, чем функция .sort()
.
Обратите внимание, что ваш цикл for не делает то, что я подозреваю, что вы так думаете. – deinst
Ни в коем случае вы не обновили 'list1'. Что заставило вас думать, что «список» обновляется? –
Аналогичная проблема возникает, когда в качестве входных данных предоставляется список1 = ['1', '1.10', '1.11', '1.1', '1.2']. Вместо того, чтобы получать выходные данные как ['1', '1.1', '1.2', '1.10', '1.11'], я получаю ['1', '1.1', '1.10', '1.11', '1.2' ] – sathish