这里是python解释器的新手。
为什么我不能对这个字符串列表进行排序?
>>> list = ['296098', '12805', '10445635', '11679960']
>>> print list.sort()
None
>>> print list.sort(key=float)
None
为什么python无法为我排序此字符串列表?
答案 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.sort
对list
进行适当排序。一些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']