python全栈开发之匿名函数和递归函数 python 匿名函数和递归函数

 python全栈开发,匿名函数,递归函数

匿名函数

lambda函数也叫匿名函数,即函数没有具体的名称。是为了解决一些功能很简单需求而设计的一句话函数。如下:

#这段代码 def calc(n):     return n**n print(calc(10))   #换成匿名函数 calc = lambda n:n**n print(calc(10)) 

 

lambda语法
lambda语法

上面是我们对calc这个匿名函数的分析,下面给出了一个关于匿名函数格式的说明

 

函数名 = lambda 参数 :返回值

 

#参数可以有多个,用逗号隔开
#匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
#返回值和正常的函数一样可以是任意数据类型

我们可以看出,匿名函数并不是真的不能有名字。
匿名函数的调用和正常的调用也没有什么分别。 就是 函数名(参数) 就可以了,那匿名函数有什么好处呢?

1 使用Python写一些执行脚本时,使用lambda可以省去定义函数的过程,让代码更加精简。
2 对于一些抽象的,不会别的地方再复用的函数,有时候给函数起个名字也是个难题,使用lambda不需要考虑命名的问题。
3 使用lambda在某些时候让代码更容易理解。

lambda函数主要和其他函数结合使用,比如下面的例子:

#有这样一个字典,怎样取得一个字典中对于的值最大的键,我们都知道max(dict)默认得到的是键的最大值(按ascii) dic={'k1':10,'k2':100,'k3':30} print(max(dic)) print(dic[max(dic,key=lambda k:dic[k])])  Output: k3 100 

一下是max的源码:

def max(*args, key=None): # known special case of max     """     max(iterable, *[, default=obj, key=func]) -> value     max(arg1, arg2, *args, *[, key=func]) -> value          With a single iterable argument, return its biggest item. The     default keyword-only argument specifies an object to return if     the provided iterable is empty.     With two or more arguments, return the largest argument.     """     pass 

第二个例子:

res = map(lambda x:x**2,[1,5,7,4,8]) for i in res:     print(i)  Output: 1 25 49 16 64 

Map 函数解析:

Python中的map函数应用于每一个可迭代的项,返回的是一个结果list。如果有其他的可迭代参数传进来,map函数则会把每一个参数都以相应的处理函数进行迭代处理。map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。

第三个例子

res = filter(lambda x:x>10,[5,8,
                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信