python基础学习(七)-- 匿名函数
# 当我们在传入函数的时候 有的时候不需要显式的去定义 直接传入匿名函数更方便 # python中 对匿名函数提供了有限支持 :以map函数为例,计算f(x) = x * x 除了定义一个函数f(x)以外,还可以直接传入匿名函数 print(list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6]))) # 看得出 其实这里的lambda x: x * x相当于 def f(x): return x * x # 关键字lambda表示匿名函数 冒号前面x表示参数 # 匿名函数有个限制 就是只能有一个表达式 不能写return返回值就是该表达式的结果 # 用匿名函数有个好处 就是匿名函数没有名字 所以不用担心函数重名。此外 匿名函数也是一个对象 也可以把匿名函数赋值给一个变量 通过变量调用这个函数 ff = lambda x: x * x print(ff(5)) # 同样也可以吧匿名函数当作返回值返回 def build(x, y): return lambda: x * x + y * y print(build(2, 3)()) # ****practice # 利用匿名函数改造下面的代码 # def is_odd(n): # return n % 2 == 1 # # L = list(filter(is_odd, range(1, 20))) # *** print(list(filter(lambda x: x % 2 == 1, range(1, 20))))