python3.7)print为什么不能打印出内容?

python3.7)print为什么不能打印出内容?

问题描述:

小白求助各位大佬,
我理解这段代码应该会分别打印出L1中的每个名字,但是执行结果却是空白,请大佬帮忙看看,谢谢

def f(name):
    return map(print,name)

L1 = ['adam', 'bob', 'tina']
f(L1)

python 3.7 中 map之后生成的是一个迭代器(iterator),不会立即执行print。
可以这样list(f(L1))试试。
list(f(L1))相当于把迭代器转换成列表对象,转换过程中会执行print。

看起来有点复杂,没理解啥意思

上面的代码,map会返回一个迭代器,如果在f(L1)前面加一个list,如list(f(L1)),则会遍历f(L1),遍历的时候输出相应的名字,然后list拿到的值为None。