关于匿名函数lambda的列表排序里面的key和参数不是很明白?这个key跟字典的key一样吗?为什么不能用其它函数名f或f()接收?

关于匿名函数lambda的列表排序里面的key和参数不是很明白?这个key跟字典的key一样吗?为什么不能用其它函数名f或f()接收?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学,你好

1.在sort()函数中的key参数就是用来指定是根据什么排序的,当key=lambda x: x["age"]即为根据字典中的"age"的值来排序

2.key不可以换成其他函数名,key是sort()中的参数

3.x是列表中的每一个元素


  • 风林海 提问者 #1
    还有个小疑问,sort()函数里面的key参数, 除了 key= lambda匿名函数之外,key还可以等于别的东西吗?还是只能key=lambda固定模式 ?
    2020-11-02 17:45:18
  • 风林海 提问者 #2
    还有那个x可不可以像匿名函数的参数一样,把x换成y,x : x 也换成 y :y 类似的,或者其它的参数字母 z, z :z 类似的呢?
    2020-11-02 17:49:52
  • 风林海 提问者 #3
    虽然把 x : x 也换成 y :y 和 z :z 类似的也能运行一样的结果,没有影响,就不知道这样改合不合规范,还是一般建议都用 x : x 呢 ?
    2020-11-02 17:58:36
好帮手慕小轩 2020-11-02 19:09:25

同学,你好,

1.sort()函数里面的key参数,只能key=lambda固定模式

d = {'a': 6, 'b': 7, 'd': 5, 's': 10}
a = d.items()
s = list(a)
s.sort(key=lambda x: x[1])
print(s)

2.结合def方法一起使用,key=方法名

li = {'a': 6, 'b': 7, 'd': 5, 's': 10}
a = li.items()
s = list(a)
s.sort()
def fun(s):
   return s[1]
s.sort(key=fun)
print(s)

3.x是匿名函数的参数即列表中的每一个元素,x[1]是函数的返回值,可以换成任意的变量名

d = {'a': 6, 'b': 7, 'd': 5, 's': 10}
a = d.items()
s = list(a)
s.sort(key=lambda x: x[1])
s.sort(key=lambda y: y[1])
s.sort(key=lambda z: z[1])
s.sort(key=lambda c: c[1])
print(s)


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师