• Python


    本章内容

    1. 匿名函数lambda
    2. 匿名函数运用

    一、匿名函数lambda

    我们所说的匿名函数就是lambda , lambda到底是什么?

    lambda是一个表达式 , 而并非语句 , 所以可以出现在def语句所不能出现的位置 , 并且不需要指定函数名; lambda表达式还可以提高代码的可读性 , 简化代码

    lambda表达式主要用于写一些简单的方法 , 对于复杂的还是用函数写的好

    示例:

     1 # 普通函数
     2 def func(x):
     3     return x * x
     4 print(func(5))
     5 -----------------------
     6 # 匿名函数,自带return功能
     7 func = lambda x : x * x
     8 print(func(5))
     9 ---------------------------------------------------
    10 func = lambda arguments : expression using argument 

    使用匿名函数可以减少命名空间使用内存 , 因为没有函数名

    可直接后面传递参数

    1 >>> (lambda x,y : x if x > y else y)(1,2)
    2 2

     非固定参数

    1 >>> (lambda *args : args)(1,2,3,4)
    2 (1, 2, 3, 4)

    PS : 匿名函数主要是与其他函数搭配使用

    二、匿名函数运用

    结合使用

    map , 计算平方

    1 # map后返回的对象为map对象,所以利用list方法进行强转
    2 >>> list(map(lambda x : x * x, [1,2,3,4]))
    3 [1,4,9,16]

    filter , 筛选偶数

    1 >>> list(filter(lambda x : x % 2 == 0,[1,2,3,4]))
    2 [2,4]

    reduce , 求和

    1 # python3中已经没有reduce方法了,调用需要导入
    2 >>> from functools import reduce
    3 # reduce(function, sequence, initial=None)
    4 >>> reduce(lambda x , y : x + y, [1,2,3,4,5],100)
    5 115

    嵌套使用

    版本一

    1 def func(x):
    2     return lambda x : x + y
    3 f = func(2)
    4 print(f(2))
    5 # output: 4

    版本二

    1 func = lambda x : (lambda y: x + y)
    2 y = func(1)
    3 y(2)
    4 # output: 3
  • 相关阅读:
    Mysql Got a packet bigger than 'max_allowed_packet' bytes
    Git之IDEA集成Git更新项目Update Type选项解释
    IDEA获取GIT仓库时更新类型update type的选择
    git merge和git rebase的区别
    git merge和git merge --no-ff的区别
    Git中fetch和pull命令的区别
    git官网下载太慢解决方法
    IDEA执行Thread.activeCount() = 2的问题
    k8s 常见错误汇总
    Axure9破解
  • 原文地址:https://www.cnblogs.com/lyonyang/p/7282124.html
Copyright © 2020-2023  润新知