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。