本文最后更新于:2021年8月15日 上午
1、lambda函数
他就是个没有名字的函数,比如匿名信这种。我们能在某一函数参数条件中直接调用他、或者借用其返回的实体构成新的函数名
如下。
比如说 lambda x,y: x+y 就是说我的函数输入x,y,返回x+y
1 2
| y=lambda a,b,c:a+b+c print('\n',y(1,2,3))
|
结果为6
仔细看看,是不是y成为了新的函数名?!
2、map函数
map就是映射的意思,他肯定是将两种东西结合映射为某一个结果。他就是接收一个函数function和一个list列表,并通过把函数f依次作用在list的每一个元素,从而得到一个新的list返回(py3中返回一个map对象,用list函数转换一下即可)
1 2 3 4 5 6 7 8 9 10 11 12
| def fib_recur(n): if n<=1: return n else: return fib_recur(n-1)+fib_recur(n-2)
X=input().strip().split() N=list(map(int, X))[0]
for i in range(1, N): print(fib_recur(i),end=' ')
|
注意哈这个X必须是列表,int则表示函数了,当然也可以其他函数命名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| def fib_recur(n): if n<=1: return n else: return fib_recur(n-1)+fib_recur(n-2)
def ex(c): return int(c) X=input().strip().split() N=list(map(ex, X))[0]
for i in range(1, N): print(fib_recur(i),end=' ')
|
注意他是自动迭代地对X列表的每一个元素操作,也就是说map自带迭代器!
3、map函数和lambda函数结合
显然只用改变map函数中的函数体就可以,无非就是函数体没有了实名,将lambda放于map的参数条件之中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| def fib_recur(n): if n<=1: return n else: return fib_recur(n-1)+fib_recur(n-2)
def ex(c): return int(c)
X=input().strip().split() N=list(map(lambda a:int(a), X))[0]
for i in range(1, N): print(fib_recur(i),end=' ')
|
在本代码list(map(lambda a:int(a), X)) 这一句只用注意两个点:
1)
lambda参数只能是一个参数标量,因为map是自动对列表X的元素迭代的
2)X为一维情况,所以他的每一个元素是标量
针对X为二维情况,博主暂时没想到好的解决办法,只能是X[2]来选择其中的一个向量列表。
1 2 3 4 5 6 7 8 9 10 11 12
| def fib_recur(n): if n<=1: return n else: return fib_recur(n-1)+fib_recur(n-2)
X=[[1,2,3],[2,4,6],[3,6,9]] N=list(map(lambda a:int(a), X[2]))[2]
for i in range(1, N): print(fib_recur(i),end=' ')
|
————————————————
版权声明:本文为CSDN博主「lamusique」的原创文章,遵循CC 4.0
BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lamusique/article/details/89162363