一、和sort()的区别
sort只能对列表进行排序,而sorted比sort更强大,他可以对所有容器进行排序
二、sorted的三个参数
iterable:集合
key:排序的参照的关键字,可是是集合里的某个属性
reverse : True 代表倒序 False代表正序
三、举个例子
moives = [ {'name': "the dark knight", 'year': 2008, 'rating': '9'}, {'name': "kaili blues", 'year': 2015, 'rating': '7.3'} ]我们想把这个些电影按year倒叙排序
moives = [
{'name': "the dark knight", 'year': 2008, 'rating': '9'},
{'name': "kaili blues", 'year': 2015, 'rating': '7.3'}
]
sorted_movies = sorted(moives, key=lambda moive: moive["year"], reverse=True)
for sorted_movie in sorted_movies:
print(sorted_movie)
{'name': 'kaili blues', 'year': 2015, 'rating': '7.3'}
{'name': 'the dark knight', 'year': 2008, 'rating': '9'}
让我猜猜你会懵逼在哪个地方? key=lambda moive: moive["year"] 对不
四、lambda 是个什么鬼
lambda表达式,就是指匿名函数
他的格式是 lambda 输入参数:输出结果
比如说
1、表达式含义 result = lambda x:x+1 #x+1就是表达式的结果 print(result(4)) #输出结果就是5lambda x:x+1 相当于
def sum(x):
retrun x+1
2、巩固一下
result = lambda x:True print(result(4)) #输出结果是True因为 :前面是传入的参数,:后面才是return的结果
那sorted的 key=lambda moive: moive["year"] 中的moive,表示集合中的每一个元素,可以叫moive,也可以叫其他的,随便起,这回是不是就懂了
key=lambda moive: moive["year"] 就是按每个元素中的 year排序