Python:使用地图功能打印元素

时间:2019-04-25 09:08:42

标签: 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的行为会有所不同。

2 个答案:

答案 0 :(得分:3)

map返回一个映射对象,耗尽时将不产生值。因此,当您第二次致电listints时,它将无法应用该功能,因此list(map(print,list(ints)))将返回一个空列表[]

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

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

答案 1 :(得分:0)

请点击此链接获取map | filter | reduce http://dataunbox.com/course/24/118/Python%20for%20dummies
要回答您的问题地图功能需要使用list。,但是您已经提供了list(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?