猿问

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

这很可能是一个重复的问题,但是我所有的搜索都没有成功帮助我。无论如何,我想从最大数字到最小数字对这个列表进行排序,但它始终打印“无”。提前感谢您的帮助!


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


print(list.sort()) # Prints None


慕妹3242003
浏览 178回答 4
4回答

慕容3067478

您正在对字符串列表进行排序,您可以将其作为键传递给排序函数,因此它将调用列表中的每个字符串。intint()list = ['1008', '1033', '1080', '3107', '3589', '574', '703', '704', '712', '731', '810', '857', '862', '909', '927', '980']list.sort(key=int)print(list)

泛舟湖上清波郎朗

尝试sorted((int(i) for i in list),reverse=True)

精慕HU

它正在做内联排序。您必须尝试以下任一方法。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))

侃侃尔雅

试试这个: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)'''
随时随地看视频慕课网APP

相关分类

Python
我要回答