Python入门第23课——匿名函数(只读课堂)

    科技2022-08-09  116

    欢迎来到“只读课堂”!

    这节课我们还是要学函数,但是它多了个名称:匿名。

    匿名函数

    In [1]:

    #我们把一个没有名字的函数称为“匿名函数”。

    In [2]:

    #匿名函数(lambda表达式):

    In [3]:

    #除了def语句之外,我们还可以使用lambda表达式创建函数 #lambda参数1,参数2,参数3,参数N: 表达式

    先写个最简单的:

    In [4]:

    f = lambda x : x*x

    In [5]:

    f(2)

    Out[5]:

    4

    In [6]:

    #结果是4,就是2乘2.

    这个函数是没有名字的。

    In [7]:

    #这个呢就是lambda表达式。

    In [8]:

    func = lambda x,y=1 : x+y

    In [9]:

    func(1)

    Out[9]:

    2

    In [10]:

    func(2)

    Out[10]:

    3

    In [11]:

    func(3)

    Out[11]:

    4

    In [12]:

    #就是加一。

    跳转表

    lambda通常用来编写跳转表(jump table)也就是行为的列表或字典,能够按照需要执行相应的动作,比如说:

    L = [lambda x:x2, lambda x:x3, lambda x:x*4]

    for f in L:

    print(f(2))

    print(L[0] (2))取列表中的第一个lambda表达式,然后传递参数为2

    In [13]:

    #它是有规则的。

    In [14]:

    mylist = [lambda x : x*x, lambda x:x*x*x, lambda x:x*x*x*x]

    In [15]:

    mylist

    Out[15]:

    [<function __main__.<lambda>>, <function __main__.<lambda>>, <function __main__.<lambda>>]

    In [16]:

    #现在它会出现一些提示。

    In [17]:

    mylist[0]

    Out[17]:

    <function __main__.<lambda>>

    In [19]:

    #它是一个lambda表达式。

    In [20]:

    mylist[0](3)

    Out[20]:

    9

    In [21]:

    mylist[0]

    Out[21]:

    <function __main__.<lambda>>

    In [22]:

    for func in mylist: func(3)

    In [ ]:

    func(3)

    In [27]:

    #这就是跳转表,它可以调用里面一些列表内容。

    In [28]:

    print("\n本次只读课堂的python教程就到这了,欢迎下一次的收看!\n") 本次只读课堂的python教程就到这了,欢迎下一次的收看!
    Processed: 0.011, SQL: 8