Python:使用map函数打印元素

标签 python map-function

我是 Python 新手,正在学习如何使用 map 函数。我遇到以下问题:

li=['12','34']
ints=map(int,li)
list(ints) #prints [12,34] OK
p1 = map(print,list(ints))
list(p1)   #prints [] WHY?
p2 = map(print, li)
list(p2)   #prints 12 34 [None, None] OK

我只是将 print 函数映射到字符串列表和整数列表,并得到了不同的结果。我不明白为什么 p1p2 的行为会有所不同。

最佳答案

map 返回一个 map 对象,当它耗尽时将不会产生任何值。因此,当您第二次调用 listints 时,它将无法将该函数应用于任何内容,因此 list(map(print,list(ints) ))) 将返回一个空列表[]

检查将 list 两次应用于同一个 map 对象时会发生什么:

>>> li=['12','34']
>>> ints=map(int,li)
>>> ints
<map object at 0x7f4e375c7898>
>>> list(ints)
[12, 34]
>>> list(ints)
[]

关于Python:使用map函数打印元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55845652/

相关文章:

functional-programming - "named let"是什么以及如何使用它来实现 map 功能?

python - 使用 numpy masked array 和 imshow 绘制分割的彩色图像

python - numba 函数什么时候编译?

list - 过滤 [Maybe a] 并丢弃 Nothing 值

reactjs - 如何在reactjs中更新 map 函数中的状态

Haskell 函数组合与 Map 函数

python - 如何使用在不同项目中构建的分类模型对新文本进行分类?

python - Cython,有没有办法创建只有一种类型的列表? (与 Python 列表不同)

python - after 方法在 tkinter 中如何工作?

javascript - 为什么 Array.from 的回调比 map 函数慢很多?