Skip to main content
 首页 » 编程设计

Python:使用 map 函数打印元素

2024年08月13日44落叶

我是 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 函数映射到字符串列表和整数列表,得到了不同的结果。我不明白为什么 p1 和 p2 会有不同的行为。

请您参考如下方法:

map 返回一个 map 对象,该对象在耗尽时不会产生任何值。因此,当您第二次调用 list 到 ints 时,它将无法将该函数应用于任何内容,因此 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) 
[]