Python: 使用map函数打印元素

Python: Print elements using 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 returns 一个地图对象,当耗尽时不会产生值。因此,当您第二次调用 listints 时,它将无法将该函数应用于任何内容,因此 list(map(print,list(ints))) 将 return 一个空列表 []

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

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

请按照此 link 进行 map|filter|reduce http://dataunbox.com/course/24/118/Python%20for%20dummies
要回答您的问题,地图函数需要 list.but 您提供的列表(list))

li=['12','34']

ints=list(map(lambda x : x,li))
print(ints)

p1 = map(print,ints) ## instead of int probabaly you might have to provide li
list(p1)   #prints [] WHY?