zl程序教程

您现在的位置是:首页 >  后端

当前栏目

《Fluent Python》读书笔记-2.8

Python 读书笔记 2.8 Fluent
2023-09-14 09:10:05 时间

在序列容器里有一个经常的操作,那就是排序。

 

list.sort 和 内置sorted函数

 

list.sort方法是把列表在原地进行排序的操作,也就是说不产生新的列表返回,它执行结束之后返回None。此方法返回None表示它不创建新的列表对象返回,并且它在原地修改了列表,这一个编程习惯在Python里形成了传统。因而所有Python的API函数或方法都遵守这个偏好,明确告诉调用者,它在原地对对象作了更改,并没有新对象创建返回。如果你去查看一下,会发现random.shuffle方法也遵守这个规则。

 

相反,内置函数sorted是创建一个新的列表对象返回,因为它不仅仅接收列表,还可以接收不可修改的序列容器,这样必须是返回一个新对象才可以成立。list.sort 和 sorted都接收两个关键字参数

reverse: 设置为True表示降序排列数据,否则设置为False就是升序排列,这是默认的方式。

key:一个参数的函数用来计算排序的关键值。比如对一个字符串进行排序时,设置key = str.lower表示不区分大小写的排序;设置为key=len表示按字符串的长