2019-03-05
閱讀量:
640
map函數(shù)執(zhí)行后列表沒(méi)更新,傳入的函數(shù)有問(wèn)題?
map函數(shù)執(zhí)行后列表沒(méi)更新,傳入的函數(shù)有問(wèn)題?
代碼如下:
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))
執(zhí)行完成之后列表a的值是 [] ,這是什么原因?map函數(shù)的作用域與正常調(diào)用函數(shù)有區(qū)別嗎?
答:map函數(shù)調(diào)用函數(shù)的時(shí)候與正常直接調(diào)用區(qū)別不大,主要區(qū)別是:map函數(shù)是lazy的,因此需要list()或者其他方式將其激活才能真正調(diào)用,其他方面是沒(méi)有差別的。
這里需要改正的是
%timeit [*map(f,range(100000))]






評(píng)論(0)


暫無(wú)數(shù)據(jù)
CDA考試動(dòng)態(tài)
CDA報(bào)考指南
推薦帖子
0條評(píng)論
0條評(píng)論
0條評(píng)論
0條評(píng)論