热线电话:13121318867

登录
2019-03-05 阅读量: 610
map函数执行后列表没更新,传入的函数有问题?

map函数执行后列表没更新,传入的函数有问题?

代码如下:

a =[]
def a_appd(ls):
def inner_appd(x):
ls.append(x**2)
return inner_appd
f = a_appd(a)

%timeit map(f,range(100000))

执行完成之后列表a的值是 [] ,这是什么原因?map函数的作用域与正常调用函数有区别吗?

答:map函数调用函数的时候与正常直接调用区别不大,主要区别是:map函数是lazy的,因此需要list()或者其他方式将其激活才能真正调用,其他方面是没有差别的。

这里需要改正的是

%timeit [*map(f,range(100000))]

7.1718
6
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子