Python 为什么map(print,x)返回“;无”;价值清单?

Python 为什么map(print,x)返回“;无”;价值清单?,python,dictionary,printing,nonetype,Python,Dictionary,Printing,Nonetype,在Python3.5中,代码 >>> T = map(print, [1, 2, 3]) >>> type(T) <class 'map'> 这对于我使用的任何输入都是可重复的,而不仅仅是上面显示的任意整数列表。 有人能解释为什么会发生这种情况吗?另请参见: 您看到的每个None都是print函数返回的内容。要了解map的功能,请尝试以下代码: >>> T = map(lambda x: x**2, [1, 2, 3])

在Python3.5中,代码

>>> T = map(print, [1, 2, 3])
>>> type(T)
<class 'map'>
这对于我使用的任何输入都是可重复的,而不仅仅是上面显示的任意整数列表。 有人能解释为什么会发生这种情况吗?

另请参见:


您看到的每个
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

print
返回
None
<代码>映射收集可编辑项的函数返回值。
打印(打印(1))
为什么不打印?
>>> a = print("anything")
anything
>>> print(a)
None