Как отсортировать список строк численно? - PullRequest
104 голосов
/ 06 августа 2010

Я знаю, что это звучит тривиально, но я не осознавал, что функция sort() в Python была странной. У меня есть список «чисел», которые на самом деле представлены в виде строки, поэтому я сначала преобразовываю их в целые, а затем пытаюсь выполнить сортировку.

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().

Ответы [ 13 ]

0 голосов
/ 01 марта 2019

Функция сортировки Python3:

if __name__== '__main__':
    n = list(input())
    print(n)    
    print(sorted(n))
0 голосов
/ 28 сентября 2018

если вы хотите использовать строку чисел, лучше возьмите другой список, как показано в моем коде, он будет работать нормально.

list1=["1","10","3","22","23","4","2","200"]

k=[]

for item in list1:

         k.append(int(item))

k.sort()

print(k)
0 голосов
/ 19 июля 2016
scores = ['91','89','87','86','85']
scores.sort()
print (scores)

Это работало для меня с использованием Python версии 3, хотя это не с версии 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...