网站如何添加js代码,网站开发时遇不到算法,网络技术挑战赛,建设银行 杭州招聘网站Lambda是Python里的高阶用法#xff0c;要把代码写得Pythonic#xff0c;就需要了解这些高阶用法#xff0c;想说自己是一名真正的Python程序员#xff0c;先要把代码写得Pythonic。
今天聊下Lambda的用法#xff0c;写篇简短的用法说明。
Lambda是匿名函数的意思#… Lambda是Python里的高阶用法要把代码写得Pythonic就需要了解这些高阶用法想说自己是一名真正的Python程序员先要把代码写得Pythonic。
今天聊下Lambda的用法写篇简短的用法说明。
Lambda是匿名函数的意思在程序中有些简单的函数我们可能只会使用一两次这种情况下你不必把它写成一个函数而是用Lambda的写法来让程序更简洁。
Lambda的写法原型是
lambda 参数:操作(参数)
冒号左边是传入的参数冒号右边是使用参数要做的操作。
比如 lambda x:x1 上面的写法等同于如下写法给参数加1再返回: def plus(x):
return x1 比如 lambda x,y:x*y 上面的写法等同于 def mul(x,y):
retuen x*y 举几个实际的例子 1、比如对list排序如下简单的list nums [3, 1, 7, 4, 8, 10] 对nums按降序排列这个很简单是吧 nums [3, 1, 7, 4, 8, 10]sorted(nums, reverseTrue)[10, 8, 7, 4, 3, 1] 如果是对嵌套list排序呢 比如nums [[10, 20, 11], [3, 9, 6], [8, 14, 3]] 我们想按每个元素里的第二个值降序排列
直接用上面sorted的写法就没法排序这个时候用lambda就很方便 nums [[10, 20, 11], [3, 9, 6], [8, 14, 3]]
sorted(nums, keylambda x:x[1], reverseTrue)
[[10, 20, 11], [8, 14, 3], [3, 9, 6]] 这个嵌套列表就按没想元素的第二个值降序排列好了这个lambda的意思是返回元素的第二个值它的写法等同于如下 def lis(x):return x[1]
sorted(nums, keylis, reverseTrue)
[[10, 20, 11], [8, 14, 3], [3, 9, 6]] 比较一下用lambda写代码要简介很多。
2.再比如按字典的value进行降序排序 nums {yuan:80, ren:93, xue:60}
nums {yuan:80, ren:93, xue:60}
sorted(nums, keylambda x: nums[x], reverseTrue) 3.比如想取列表里的值 nums [‘1’, ‘100’, ‘111’, ‘2’, 2, 2.57] 但是列表里还有字符串没法直接比较大小怎么做用lambda来处理。 nums [1, 100, 111, 2, 2, 2.57]
max(nums, keylambda x:int(x))
111 这个写法等同于 def trsn(x):
return int(x)
max(nums, keytrsn) 如果lambda结合map , filter 等高阶Python语法还有更多的用法。
如上用lambda的好处是让代码更简洁这是程序员对代码的一种追求。坏处就是让程序不太容易看懂不过只要你搞清楚了lambda的用法也没那么难懂。