python全栈开发,匿名函数,递归函数
匿名函数
lambda函数也叫匿名函数,即函数没有具体的名称。是为了解决一些功能很简单需求而设计的一句话函数。如下:
#这段代码 def calc(n): return n**n print(calc(10)) #换成匿名函数 calc = lambda n:n**n print(calc(10))

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,
