Python还债日记之sort和sorted
目录
python中的sort
与sorted
的区别
Python 列表有一个内置的 list.sort()
方法可以直接修改列表。还有一个 sorted()
内置函数,它会从一个可迭代对象构建一个新的排序列表
sort
和sorted
使用了Timsort
排序算法,时间复杂度和空间复杂度如下
1. sort(*, key=None, reverse=False)
-
针对python中的列表进行操作
-
sort是对原列表进行修改,是一种原地操作,使用
<
进行比较,默认按升序排序 -
key 指定带有一个参数的函数,用于从每个列表元素中提取比较键 (例如
key=str.lower
)。 对应于列表中每一项的键会被计算一次,然后在整个排序过程中使用。 默认值None
表示直接对列表项排序而不计算一个单独的键值 -
reverse 为一个布尔值。 如果设为
True
,则每个列表元素将按反向顺序比较进行排序,也就是输出降序排序结果
2. sorted
(iterable, ***, key=None, reverse=False)
-
根据 iterable 中的项返回一个新的已排序列表,相比于
sort
只能针对python的列表对象,sorted
可以针对任何可迭代对象使用(字典、元组等) -
默认输出升序排序结果
-
具有两个可选参数,它们都必须指定为关键字参数。
-
key 指定带有单个参数的函数,用于从 iterable 的每个元素中提取用于比较的键 (例如
key=str.lower
)。 默认值为None
(直接比较元素)。 -
reverse 为一个布尔值。 如果设为
True
,则每个列表元素将按反向顺序比较进行排序