Python的lambda
Posted 亲爱的不二999
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python的lambda相关的知识,希望对你有一定的参考价值。
if else 可以用简单的三元运算符表示
if 1 == 1: name = \'wupeiqi\' else: name = \'alex\'
--》
name = \'wupeiqi\' if 1 == 1 else \'alex\'
对于函数也可以lambda来简化表达
# ###################### 普通函数 ###################### # 定义函数(普通方式) def func(arg): return arg + 1 # 执行函数 result = func(123) # ###################### lambda ###################### # 定义函数(lambda表达式) my_lambda = lambda arg : arg + 1 # 执行函数 result = my_lambda(123)
内置函数
1,map
遍历序列,对序列中每个元素进行操作,最终获取新的序列。
li = [11, 22, 33] new_list1 = map(lambda a: a + 100, li) print new_list1
[111, 122, 133]
li = [11, 22, 33] sl = [1, 2, 3] new_list = map(lambda a, b: 2*a + b, li, sl) print new_list
[23, 46, 69]
2,filter
对于序列中的元素进行筛选,最终获取符合条件的序列
li = [11, 22, 33] new_list2 = filter(lambda arg: arg >= 22, li) print new_list2
[22, 33]
3,reduce
对于序列内所有元素进行累计操作
li = [11, 22, 33] sl = [1, 2, 3] result = reduce(lambda arg1, arg2: arg1 + arg2, li) print result
# reduce的第一个参数,函数必须要有两个参数 # reduce的第二个参数,要循环的序列 # reduce的第三个参数,初始值
匿名函数lambda作为返回值返回时输出值的问题
def xc(x): return lambda x:x*x print xc(4)(4) def build(x,y): return lambda x,y: xx+yy print build(4,5)(4,5) def build(): return lambda x,y: xx+yy print build()(5,5) pl=lambda x:x*x print pl(3) print xc(4) def build(x,y): return lambda : xx+yy print build(4,5)() def build(x,y,z): return lambda :xx+yy+z print build(4,5,9)() def build(): return lambda x,y,z:xx+yy+z print build()(4,5,9)
以上是关于Python的lambda的主要内容,如果未能解决你的问题,请参考以下文章
Python单行函数lambda(小米)加reducemapfilter(步枪)应用