python里students.sort(key=lambda x: x['name']),两个x的意思是什么?

也就是说我不太明白这两个x到底是不是一回事,能不能解释一下这个lambda x: x['name']的意思
一下是一段代码
students = [
{'name': 'A', 'age': '20'},
{'name': 'B', 'age': '19'},
{'name': 'C', 'age': '22'}
]
students.sort(key=lambda x: x['name'])

lambda x:x ['name']是一个匿名函数(俗称lambda表达式),冒号前面的x是函数的参数,sort函数会把列表的每个字典传给x,而x['name']是函数的函数体,意思是返回字典x的name键的值。

这个代码的意思就是按列表中每个字典的name键的升序来对列表排序。

其实,students.sort(key=lambda x:x['name'])就是相当于这样:
#先定义一个函数
def k(x):return x['name']
#key按关键字传参排序
students.sort(key=k)追问

我就等这样的答案,给我看看def之后的代码我就知道怎么回事了,其实我昨天也理解到意思了,就是一直纠结两个X之间的关系而已

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-10-02
具体可以查询关于匿名函数的使用,第一个x只是一个相当于形式的一个,这是一种匿名函数的命名方式,后面的x指的就是输入进来的字典,对其中的key进行,也就是name进行排序
第2个回答  2021-10-02
这两个x都是列表,在lambda表达式中,求按照name生序排列的列表
第3个回答  2021-10-02
按name进行排序,x起传递的作用