社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

python:当字符串是数字列表时对其进行排序[重复]

etayluz • 5 年前 • 1251 次点击  

这个问题已经有了答案:

新来的python解释器。

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

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

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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/49574
 
1251 次点击  
文章 [ 3 ]  |  最新文章 5 年前
aydow
Reply   •   1 楼
aydow    6 年前

list.sort 排序 list 到位。一些Python程序员更喜欢 sorted 它将返回已排序的 列表 留下首字母 列表 原封不动

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']
Kevin Fang
Reply   •   2 楼
Kevin Fang    6 年前

首先, 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 作为变量名,因为它已经是内置函数名了。

Ares
Reply   •   3 楼
Ares    6 年前

list.sort() 在适当的地方改变列表,而不是返回一个新列表。

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