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

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

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

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

3个回答

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

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐