使用列表理解打印

新手上路,请多包涵

从我的 Python 控制台

>>> numbers = [1,2,3]
>>> [print(x) for x in numbers]
1
2
3
[None, None, None]

为什么最后打印三个无?

原文由 Apollo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 318
2 个回答

列表理解不是手头工作的正确工具。它总是会返回一个 _列表_,并且鉴于 print() 计算为 None ,列表中填充了 None 值当我们对创建值列表不感兴趣,只对评估没有返回值的函数感兴趣时,一个简单的 for 循环效果更好:

 for x in numbers:
    print(x)

原文由 Óscar López 发布,翻译遵循 CC BY-SA 3.0 许可协议

您应该重组循环以将参数发送到 print()

 >>> numbers = [1,2,3]
>>> print(*(x for x in numbers), sep='\n')

请注意,您不需要显式生成器。只需解压 list 本身:

 >>> numbers = [1,2,3]
>>> print(*numbers, sep='\n')

原文由 TigerhawkT3 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题