一、sort的用法
1、sort是Python中列表的一个内置函数,用于对列表进行就地排序,也就是直接对原列表进行修改不创建副本。
a = [1,3,5,4,2]
print(a.sort()) #None 返回值是None 所以想用b = a.sort()的方式得到排序后的列表是错误的
print(a) #[1,2,3,4,5]
2、如果想要原列表不变,得到一个排序后的副本可以先用copy()或者[:]得到一个副本再排序
a = [1,3,5,4,2]
b = a.copy() #或则b = a[:]
b.sort()
print(a, b) #[1,3,5,4,2] [1,2,3,4,5]
3、sort(key,reverse)的key和reverse参数,key参数接受一个函数根据函数的返回值进行比较,reverse参数是一个布尔值,为True则逆序排列。
a = ["abort", "cool", "except", "dog"]
a.sort(key = lambda x:x[0]) #按列表每个元素的第一个值排序
print(a) #['abort', 'cool', 'dog', 'except']
a.sort(key=lambda x:x[0],reverse= True) #按列表每个元素的第一个值排序,并逆序。
print(a) #['except', 'dog', 'cool', 'abort']
二、sorted的用法
1.sorted()是Python的build-in函数,可对所有的可迭代对象进行排序,返回一个列表形式的副本。
a = [1,3,5,4,2]
b =sorted(a)
print(a,b) #[1,3,5,4,2] [1, 2, 3, 4, 5]
2,sorted()函数也有key和reverse两个参数,reverse值为True表示逆序
my_dict = {"a":"2", "c":"5", "b":"1"}
result = sorted(my_dict) #默认对dict的key值进行比较排序
print(result) #['a', 'b', 'c']
result2 = sorted(my_dict, key=lambda x:my_dict[x]) #指定key参数,根据dict的value排序
print(result2) #['b', 'a', 'c']