sorted 函数
1、对可迭代对象进行排序,有返回值,返回的是一个排序后的列表,并且不会对原可迭代对象产生影响,适用于需要对原可迭代对象进行保留时使用
2、支持两个参数key和reverse,不加参数默认为升序排序
3、sorted函数排序是稳定的,即使出现相同大小的元素是不会改变元素原来的相对顺序的,有利于多重排序
a = [2,1,2,5]
b = sorted(a) # 不加参数,默认是升序排列
print(b) # 输出:[1,2,2,5]
a = (2,1,2,5)
b = sorted(a)
print(b) # 输出列表:[1,2,2,5]
str1 = "bcad"
str2 = sorted(str1)
print(str2) # 输出:['a','b','c','d']
多重排序
l = [["Tom", 18], ["Tom", 20], ["Susan", 20]]
# x 代表l中的每一个元素,先以第0个元素进行排序,再以第一个元素排序
# 默认都是升序排序
print(sorted(l, key=lambda x:(x[0], x[1])))
# 输出:[['Susan', 20], ['Tom', 18], ['Tom', 20]]
# 如果某个元素前有"-",表示该元素降序排列
# 在以某一个元素进行升序或降序排列的时候不能使用reverse
print(sorted(l, key=lambda x:(x[0], -x[1])))
# 输出:[['Susan', 20], ['Tom', 20], ['Tom', 18]]
sort 函数
1、sort函数只是列表的一个排序函数,其他的可迭代对象不能使用,没有返回值,并且sort函数是在原列表的基础上进行修改,如果原列表的数据不是很重要,建议使用sort函数,不会额外增加使用内存
2、支持两个参数key和reverse,不加参数默认为升序排序
3、sort函数排序是稳定的,即使出现相同大小的元素是不会改变元素原来的相对顺序的