一、首先介绍下sort()与sorted()的区别:
1、sort() 是 list 的方法,只有 list 能用,而sorted() 是内置函数,可以对所有可迭代的对象进行排序操作;sort()在对列表排序时需要单独使用,sort()方法是在原地对列表排序,是对原列表的直接操作,并不会返回一个新的列表。sort()方法需要单独使用,如果和赋值,打印等方法一起使用,结果会返回None
2、list 的 sort() 方法是原地操作,无返回值,而内置函数 sorted() 方法是返回一个新的 list。
二、sorted() 的用法
语法:
sorted(iterable, key=None, reverse=False)
参数:
iterable – 表示可以迭代的对象,例如可以是dict.items()、dict.keys()等。
key – 是一个函数,用来选取参与比较的元素。
reverse – 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
返回:
返回重新排序的列表。
示例①:已知一个列表,根据字典中的x ,由大到小排序这个列表
a = [{"x": 1, "y": 2}, {"x": 2, "y": 3}, {"x": 3, "y": 4}]
aa1 = sorted(a, key=lambda item: item["x"], reverse=True)
print(aa1)
示例②:已知一个列表,根据元组中的数字由小到大排序
b = [('b', 2), ('a', 3), ('c', 1), ('d', 4)]
b1 = sorted(b, key=lambda x: x[1], reverse=False)
print(b1)
示例③:已知一个字典,根据values来进行排序
my_dict = {'lilee': 25, 'age': 24, 'phone': 12}
print(my_dict.items())
b = sorted(my_dict.items(), key=lambda item: item[1], reverse=True)
print(b)