为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕妹3242003 2022-08-11 17:09:33
这很可能是一个重复的问题,但是我所有的搜索都没有成功帮助我。无论如何,我想从最大数字到最小数字对这个列表进行排序,但它始终打印“无”。提前感谢您的帮助!list = ['1008', '1033', '1080', '3107', '3589', '574', '703', '704', '712', '731', '810', '857', '862', '909', '927', '980']print(list.sort()) # Prints None
查看完整描述

4 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

您正在对字符串列表进行排序,您可以将其作为键传递给排序函数,因此它将调用列表中的每个字符串。intint()


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

list.sort(key=int)

print(list)


查看完整回答
反对 回复 2022-08-11
?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

尝试

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


查看完整回答
反对 回复 2022-08-11
?
精慕HU

TA贡献1845条经验 获得超8个赞

它正在做内联排序。您必须尝试以下任一方法。


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


查看完整回答
反对 回复 2022-08-11
?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

试试这个:


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)


'''


查看完整回答
反对 回复 2022-08-11
  • 4 回答
  • 0 关注
  • 177 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信