1. sort 方法的工作机制
student_scores.sort(key=...) 这个方法,会遍历student_scores列表里的每一个元素(也就是每个字典)。对于列表里的每一个元素,它都会自动把这个元素作为实参,传给key指定的函数。
2. lambda x:x['score'] 里的 x 本质
这里的x是匿名函数的形参,它只是一个临时的变量名:
当sort遍历到第一个字典{'name':'陈梅梅','score':98}时,就会把这个字典赋值给x,然后执行x['score'],得到98
遍历到第二个字典{'name': '王一一','score': 95}时,再把这个字典赋值给x,执行x['score'],得到95
以此类推,每个字典都会被依次传给x
3. x 本身不“认识”字典
x只是一个占位符,它的取值完全由sort方法传递过来的列表元素决定:列表里的元素是字典,x就会变成字典,如果列表里是数字,x就会变成数字变量名x也可以换成别的,比如lambda stu:stu['score'],效果是完全一样
简单来说:不是x主动对应字典,而是sort方法在遍历列表时,把每个字典依次“塞”给了x,x只是被动接收当前正在处理的那个元素而已
4. reverse=True表示按照升序排列。
最终的运行结果: