python从零开始--20 匿名函数

匿名函数:函数的简写方式 

语法: lambda [arg1 [,arg2,.....argn]]:expression

所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数

  • lambda 只是一个表达式,函数体比 def 简单很多。
  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
  • lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
  • 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

例子1:

# 初始写法
def is_odd(n):
    return n % 2 == 1
L = list(filter(is_odd, range(1, 20)))
print(L)

# 用lambda改造
L1 = list(filter(lambda x: x%2 ==1,range(1, 20) ))
print(L1)
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

阅读更多
个人分类: python从零开始
上一篇python从零开始--18 global and nonlocal的作用域
下一篇python从零开始--21 装饰器
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭