14.匿名函数

作者: Stone_説 | 来源:发表于2020-12-20 18:14 被阅读0次

    目录:
    1.匿名函数介绍
    2.匿名函数的构建
    3.举例

    1.匿名函数介绍

    匿名,即没有名字
    函数的定义?调用?

    2.匿名函数的构建

    Python借助Lambda表达式构建匿名函数
    格式:

    lambda 参数列表:表达式
    
    >>> lambda x:x**2
    <function <lambda> at 0x7f8c00d13790>
    >>> (lambda x:x**2)(4)
    16
    >>> (lambda x,y:(x*y))(3,4)
    12
    

    总结:

    1.使用lambda关键字来定义匿名函数
    2.参数列表不需要小括号
    3.冒号是用来分割参数列表和表达式的
    4.不需要使用return,表达式的值,就是匿名函数的返回值
    5.lambda表达式(匿名函数)只能写在一行上,也被称为单行函数
    

    3.举例

    >>> print((lambda :0)())
    0
    >>> print((lambda x, y=3: x + y)(5))
    8
    >>> print((lambda x, y=3: x + y)(5, 6))
    11
    >>> print((lambda x, *, y=30: x + y)(5))
    35
    >>> print((lambda x, *, y=30: x + y)(5, y=10))
    15
    >>> print((lambda *args: (x for x in args))(*range(5)))
    <generator object <lambda>.<locals>.<genexpr> at 0x7f8c00d15b30>
    >>> print((lambda *args: [x+1 for x in args])(*range(5)))
    [1, 2, 3, 4, 5]
    >>> print((lambda *args: {x+2 for x in args})(*range(5)))
    {2, 3, 4, 5, 6}
    

    高阶函数的例子:

    >>> [x for x in (lambda *args: map(lambda x: x+1, args))(*range(5))] 
    [1, 2, 3, 4, 5]
    >>> [x for x in (lambda *args: map(lambda x: (x+1,args), args))(*range(5))]
    [(1, (0, 1, 2, 3, 4)), (2, (0, 1, 2, 3, 4)), (3, (0, 1, 2, 3, 4)), (4, (0, 1, 2, 3, 4)), (5, (0, 1, 2, 3, 4))]
    

    相关文章

      网友评论

        本文标题:14.匿名函数

        本文链接:https://www.haomeiwen.com/subject/bbrcnktx.html