Py学习  »  Python

如何对python中的字符串数字列表进行排序?

Bigc1109 • 5 年前 • 1702 次点击  

这很可能是一个重复的问题,但是我所有的搜索都没有成功帮助我。不管怎样,我想把这个列表从最大的数字排序到最小的数字,但是它始终没有打印出来。提前谢谢你的帮助!

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

print(list.sort()) # Prints None
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/55296
 
1702 次点击  
文章 [ 5 ]  |  最新文章 5 年前
Raju Komati
Reply   •   1 楼
Raju Komati    5 年前
list = ['1008', '1033', '1080', '3107', '3589', '574', '703', '704', '712', '731', '810', '857', '862', '909', '927', '980']
list.sort(key=int)
print(list)
Devansh Baldwa
Reply   •   2 楼
Devansh Baldwa    5 年前

要将字符串列表转换为整数列表,

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

那么,

print(list.sort(reverse=True))
Venkataraman R
Reply   •   3 楼
Venkataraman R    5 年前

它正在进行内联排序。你必须尝试以下任一方法。

Python列表有一个内置的sort()方法来修改列表 就地和一个sorted()内置函数,用于构建一个新的sorted 从iterable中列出。

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))
Prateek Dewan
Reply   •   4 楼
Prateek Dewan    5 年前

尝试

sorted((int(i) for i in list),reverse=True)
Alex
Reply   •   5 楼
Alex    5 年前

试试这个:

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)

'''