python:数字列表时对字符串列表进行排序

时间:2018-12-05 22:36:04

标签: python list sorting

这里是python解释器的新手。

为什么我不能对这个字符串列表进行排序?

>>> list = ['296098', '12805', '10445635', '11679960']
>>> print list.sort()
None
>>> print list.sort(key=float)
None

为什么python无法为我排序此字符串列表?

3 个答案:

答案 0 :(得分:4)

list.sort()对列表进行适当的更改,而不是返回新列表。

>>> list = ['296098', '12805', '10445635', '11679960']
>>> list.sort()
>>> list
['10445635', '11679960', '12805', '296098']

答案 1 :(得分:2)

首先,list.sort()在适当的位置操作列表,这意味着当您调用它时,列表已经排序,默认返回值为None

list = ['296098', '12805', '10445635', '11679960']
list.sort()
list
Out[4]: ['10445635', '11679960', '12805', '296098']

第二,上面是按字符串值排序,要按数字值排序,可以使用key=int。请记住,您可以使用任何自定义方法替换int:

list.sort(key=int)
list
Out[6]: ['12805', '296098', '10445635', '11679960']

最后但并非最不重要的是,您不应使用list作为变量名,因为它已经是内置函数名。

答案 2 :(得分:1)

list.sortlist进行适当排序。一些Python程序员希望使用sorted来返回经过排序的list并保留初始的list不变

In [2]: l=['296098', '12805', '10445635', '11679960']

In [3]: sorted(l, key=float)
Out[3]: ['12805', '296098', '10445635', '11679960']

In [4]: l.sort(key=float)

In [5]: l
Out[5]: ['12805', '296098', '10445635', '11679960']