Python第十一天

匿名函数

  • 1 lambda函数也叫匿名函数,即函数没有具体的名称。先来看一个简单的例子

    def fun(x):
    	return x ** 2
    print(fun(4))
    

    使用lambda表达式,可以写成这样:

    print((lambda x:x ** 2)(4))
    
  • 2 lambda和普通的函数相比,省去了函数名而已,同时这样的匿名函数,又不能共享在别的地方调用。
    lambda基础:
    lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值。lambda语句构建的其实是一个函数对象。

    print((lambda x,y:x+y)(1,2))
    
  • 3 lambda表达式内置函数:
    lambda内置函数有3个,分别是filter(筛选),map(映射),reduce(累加)
    首先是filter:筛选可迭代对象符合条件的元素,返回值一般人看不懂。

    poo = [1,5,4,3,12,9,27,55]
    print(filter(lambda x:x%3 == 0,poo))
    #返回值是filter object,我们可以转换一下
    print(list(filter(lambda x:x%3 == 0,poo)))
    #打印[3, 12, 9, 27],使用list转换成列表
    

    map():映射,可以看成f(x) = x(可能有些抽象)

    foo =[1,5,4,3,12,9,27,55]
    print(list(map (lambda x:x*2-1,foo)))
    #结果为[1, 9, 7, 5, 23, 17, 53, 109]
    

    可以看成这个等式:f(x) = x*2-1

    x154312
    f(x)197523

    reduce():先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算(累加求和)
    要使用reduce()函数要先导reduce包,要不然会报错

    from functools import reduce
    poo = [1,2,3,4,5,6]
    print(reduce (lambda x,y:x+y,foo))#输出21
    #下面我们可以开始整活
    print(reduce (lambda x,y:x+y,foo,int(input())))
    #reduce可以把接收到的数一起计算
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值