python map,list(map),lambda和性能

python map,list(map),lambda和性能,第1张

python map,list(map),lambda和性能

为什么?我想念什么?我知道map返回一个迭代器,该迭代器应该节省内存,而不是立即保存整个列表。但是我的超重型

print
功能什么时候会被触发呢?

map
函数在程序员术语中通常称为 lazy 。它不会做任何工作,除非它 。这在函数式编程中被广泛称为“
惰性评估”
。该
map
函数不是立即计算任何值,而是返回所谓的
迭代器 。通过这样做,它委派了计算 返回给您 的值的工作。

迭代器可以使用

next
以下方式计算单个值:

>>> arr = [1, 2, 3]>>> it = map(lambda x: print(x), arr)>>> next(it)1>>>

但是,当您将地图迭代器转换为列表时,您将强制地图计算 其所有值 ,从而调用函数:

>>> it = map(lambda x: print(x), arr)>>> list(it)1234[None, None, None, None]>>>


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5631569.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存