Python函数式编程---- Pythonic 之路

lambda 

lambda是匿名函数,没有函数名,你可以现场定义、直接使用:

 >>> a=map(lambda x:x*2,[1,2,3])
>>> list(a)
[2, 4, 6]

lambda x:x*2 表示将x=x*2 ,对于偶尔一用的函数,就可以这样写


map

map函数是对一个序列的每个项依次执行函数,下面是对一个序列每个项都乘以2

a=map(lambda x:x*2,[1,2,3])


reduce

reduce函数是对一个序列的每个项迭代调用函

reduce(lambda  x,y:x*y,range(1,4)) 这个例子用来求3! 


闭包:

  闭包就是函数中又定义函数,里面的函数可以使用外部作用域内的变量,但不是全局变量,所以一次创建外部函数,则多次调用内部函数时外部作用域内的变量还是有效的;多次运行外部函数,则会重新创建闭包,原来外部变量的值也不会受到影响,

看个例子:

 

def hellocounter (name):
    count=[0]
    def counter():
        count[0]+=1
        print 'Hello,',name,',',str(count[0])+' access!'
    return counter

hello = hellocounter('ma6174')
hello()
hello()
hello() 

运行结果:

Hello, ma6174 , 1 access!
Hello, ma6174 , 2 access!
Hello, ma6174 , 3 access!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值