热线电话:13121318867

登录
2019-02-28 阅读量: 4393
如何给map函数传递多个参数?

如何给map函数传递多个参数?

def func(x1,x2):
if x2>0:
return x1*x2
else:
return -x1*x2
但是在map()中只能接受一个参数,如何可以多传递一个非序列的参数呢?

map(func,[1,2,3,4,5,6,7])

答;这时可以使用闭包函数,闭包函数设计的初衷就是方便传递参数.

那如何实现传递参数的功能呢?参考代码如下:

def func(x1):
def inner(x2):
if x2>0:
return x1*x2
else:
return -x1*x2
return inner
#比如我们要传递一个x1为5的参数,则可以这么写:
func = func(5)

map(func,[1,2,3,4,5,6,7])

0.0000
4
关注作者
收藏
评论(1)

发表评论
PGC123
2019-03-05
python3中map函数是惰性的,如果不进行[*map(func,[1,2,3,4,5,6,7])]或者list(map(func,[1,2,3,4,5,6,7]))操作,map函数不会实际执行,切记!
0.0000 0 0 回复