icehug
最南方的南和最冷的冰
2019-03-12 17:36
采纳率: 100%
浏览 4.7k

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

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

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • Boover
    Boover 2019-03-12 17:47
    已采纳

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

    点赞 评论
  • happy27826137
    happy27826137 2019-03-12 17:48

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

    点赞 评论
  • weixin_40584261
    TinerSky 2019-03-12 18:01

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

    点赞 评论

相关推荐