Как вы сортируете список чисел, которые являются строками в python? - PullRequest
0 голосов
/ 26 февраля 2020

это скорее всего дублирующий вопрос, однако все мои поиски не помогли мне. В любом случае, я хотел бы отсортировать этот список от наибольшего числа до наименьшего числа, но он постоянно печатает None. Заранее спасибо за помощь!

list = ['1008', '1033', '1080', '3107', '3589', '574', '703', '704', '712', '731', '810', '857', '862', '909', '927', '980']

print(list.sort()) # Prints None

Ответы [ 4 ]

0 голосов
/ 26 февраля 2020

вы сортируете список строк, которые вы можете передать int в качестве ключа для функции сортировки, поэтому он будет вызывать int() для каждой строки в списке.

list = ['1008', '1033', '1080', '3107', '3589', '574', '703', '704', '712', '731', '810', '857', '862', '909', '927', '980']
list.sort(key=int)
print(list)
0 голосов
/ 26 февраля 2020

Попробуйте

sorted((int(i) for i in list),reverse=True)
0 голосов
/ 26 февраля 2020

Попробуйте это:

list = ['1008', '1033', '1080', '3107', '3589', '574', '703', '704', '712', '731', '810', '857', '862', '909', '927', '980']

for i in range(0, len(list)): 
    list[i] = int(list[i])

list.sort(reverse = True) 
print(list)

'''
0 голосов
/ 26 февраля 2020

Это делает встроенную сортировку. Вы должны попробовать любой из следующих подходов.

Python списки имеют встроенный метод sort (), который изменяет список на месте, и встроенную функцию sorted (), которая создает новый отсортированный список из итерируемого.

list.sort()
print(list)

или

print(sorted(list))

Ваш список состоит из символьных строк. Сначала вы должны преобразовать их в целые числа, а затем отсортировать.

>>> list
['1008', '1033', '1080', '3107', '3589', '574', '703', '704', '712', '731', '810', '857', '862', '909', '927', '980']
>>> int_list = [int(l) for l in list]
>>> int_list.sort()
>>> int_list
[574, 703, 704, 712, 731, 810, 857, 862, 909, 927, 980, 1008, 1033, 1080, 3107, 3589]

Или просто вы можете сделать, как показано ниже:

>>> print(sorted(list,key=int))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...