• day17.Python中lambda表达式应用


    对于简单的函数,也存在一种简便的表示方式,即:lambda表达式

    #普通函数
    1 def func(a):
    2     return a+1
    3 print 'test1_func0:',func(1000)
    4
    #lambda表达式 
    5 func0 = lambda a:a+1
    6 print 'test2_func0:',func0(1000)

    上面这种方法,都实现了将1000+1的结果打印出来这个功能。

    lambda存在意义就是对简单函数的简洁表示。

    上面是我们对calc这个匿名函数的分析,下面给出了一个关于匿名函数格式的说明

    函数名 = lambda 参数 :返回值
    
    #参数可以有多个,用逗号隔开
    #匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
    #返回值和正常的函数一样可以是任意数据类型

    我们可以看出,匿名函数并不是真的不能有名字。

    匿名函数的调用和正常的调用也没有什么分别。 就是 函数名(参数) 就可以了。


    说到lambda,这里再赠送一些可以给lambda加buff小伙伴:

    1.map函数,我们使用map函数将会对列表中的所有元素进行操作。map有两个参数(函数,列表),它会在内部遍历列表中的每一个元素,执行传递过来的函数参数。在输出到新列表中。

    1 li = [11, 22, 33]
    2 new_list = map(lambda a: a + 100, li)
    输出:[111, 122, 133]

    当然,map还可以完成多个数组的相加:

    li = [11, 22, 33]
    sl = [1, 2, 3]
    new_list = map(lambda a, b: a + b, li, sl)
    print new_list
    输出:[12, 24, 36]

    2.reduce函数,对于序列内所有元素进行累计操作:

    lst = [11,22,33]
    func2 = reduce(lambda arg1,arg2:arg1+arg2,lst)
    print 'func2:',func2
    输出:func2: 66

    3.filter函数,他可以根据条件对数据进行过滤:

    li = [11, 22, 33]
    new_list = filter(lambda arg: arg > 22, li)
    print new_list
    输出:[33]

    面试题练一练

    现有两个元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]

    #答案一
    test = lambda t1,t2 :[{i:j} for i,j in zip(t1,t2)]
    print(test(t1,t2))
    #答案二
    print(list(map(lambda t:{t[0]:t[1]},zip(t1,t2))))
    #还可以这样写
    print([{i:j} for i,j in zip(t1,t2)])
    答案
  • 相关阅读:
    知识要点
    SQL语法(包括建库、建表、建视图、查询、增加、删除、修改)
    SQL语句(建库、建表、修改语句)
    比较好的电影网站
    crud创建,修改,删除,查询
    代码创建与操作数据库
    数据库
    数组与集合
    结构体
    类的运用
  • 原文地址:https://www.cnblogs.com/maxiaotiaoshishui/p/7280090.html
Copyright © 2020-2023  润新知