crossin的编程教室吧 关注:3,826贴子:3,799
  • 1回复贴,共1

求助,关于lambda

只看楼主收藏回复

对于L = [("bob",75),("adam",92),("lisa",88)]按照成绩进行sorted排序,可以写为L2=sorted(L,key = lambda x:x[1]),问题1是:有一点不懂是lambda x:x[1],为什么能在所有元素中都能提取到相应的关键字呢?感觉lambda是一种遍历吗?
问题2是:同样的如果不用lambda去做这个题,我怎么都写不出代替lambda的函数,感觉上是def f(x) :return x[1],但是在sorted中怎么也写不出x代表的什么,而且我也不能直接def x:return x[1]。请问不用lambda去做这个题的函数应该是什么?


IP属地:天津1楼2018-03-21 19:07回复
    我看了sorted中key是这么说的:“key指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None。”为什么lambda函数可以从列表中的每一个元素中都能提取到关键字呢?lambda函数应该是一个匿名函数,感觉应该是写很简单的函数才会用到,为什么在这里能遍历所有列表中的元素?是因为参数x的原因?


    IP属地:天津2楼2018-03-21 19:12
    回复