zoukankan      html  css  js  c++  java
  • python-匿名函数

    我们先看一个map函数的例子

    def f(x):
       return x * x
    
    list(map(f, [1,2,3,4,5,6])) //[1,4,9,16,25,36]

    我们可以用一种更加简单的方式来完成例子

    list(map(lambda x: x * x, [1,2,3,4,5,6]))//[1,4,9,16,25,36]

    这样是不是更加简洁了呢,这就是匿名函数!

    通过对比可以看出,匿名函数lambda x: x * x实际上就是:

    def f(x):
        return x * x

    关键字lambda表示匿名函数,冒号前面的x表示函数参数。

    匿名函数有一个限制,那就是只能包含一个表达式,不用写return,返回值就是该表达式的结果

    用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数:

    f = lambda x: x * x
    f // <function <lambda> at 0x101c6ef28>
    f(5) // 25

    我们也可以把匿名函数当作返回值返回比如:

    def result(x,y):
       return lambda: x*x + y*y
    
    f = result(2,2)
    f() //8

     Python对匿名函数的支持有限,只有一些简单的情况下可以使用匿名函数。

    常用于map,reduce,filter

  • 相关阅读:
    poj 3616 Milking Time
    poj 3176 Cow Bowling
    poj 2229 Sumsets
    poj 2385 Apple Catching
    poj 3280 Cheapest Palindrome
    hdu 1530 Maximum Clique
    hdu 1102 Constructing Roads
    codeforces 592B The Monster and the Squirrel
    CDOJ 1221 Ancient Go
    hdu 1151 Air Raid(二分图最小路径覆盖)
  • 原文地址:https://www.cnblogs.com/qjuly/p/9317332.html
Copyright © 2011-2022 走看看