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,则每个列表元素将按反向顺序比较进行排序