为什么map(print,x)返回" None"价值表?

时间:2017-03-26 13:16:27

标签: python dictionary printing nonetype

在Python 3.5中,代码

>>> T = map(print, [1, 2, 3])
>>> type(T)
<class 'map'>

返回一个地图对象。我希望这个地图对象T包含数字1,2和3;所有都在不同的线上。 实际上,这个会发生。唯一的问题是它还输出一个与输入列表长度相同的None值列表。

>>> list(T)
1
2
3
[None, None, None]
>>> 

对于我使用的任何输入,这都是可重复的,而不仅仅是上面显示的任意整数列表。 任何人都可以解释为什么会这样吗?

1 个答案:

答案 0 :(得分:2)

另见:
https://stackoverflow.com/a/7731274
https://stackoverflow.com/a/11768129
https://stackoverflow.com/a/42399676

您看到的每个None都是print函数返回的内容。要了解map的作用,请尝试以下代码:

>>> T = map(lambda x: x**2, [1, 2, 3])
>>> t = list(T)
>>> print(t)
[1, 4, 9]

当您使用print时:

>>> T = map(print, [1, 2, 3])
>>> t = list(T)
1
2
3
>>> print(t)
[None, None, None]

这并不奇怪,因为:

>>> a = print("anything")
anything
>>> print(a)
None