我是 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)
[]
关于Python:使用map函数打印元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55845652/