为什么使用 `map` 函数打印语句却没有执行?

为什么使用 `map` 函数打印语句却没有执行?

map 不执行的探究

问题:

使用 map 时,明明传入了打印语句,但返回的却是 map object,没有执行打印操作。

代码:

map(lambda x: print(x), [1, 2, 3])
# <map object at></map>

解答:

map 函数返回的是一个 map object,它本身并不会执行传入的语句。map object 是一种惰性的数据结构,只有在需要时才会执行语句。

要立即执行语句,可以将 map object 转换为列表:

list(map(lambda x: print(x), [1, 2, 3]))

这样,print 语句就会被立即执行,并打印出结果:

1
2
3

以上就是为什么使用 `map` 函数打印语句却没有执行?的详细内容,更多请关注其它相关文章!