从我的 Python 控制台
>>> numbers = [1,2,3]
>>> [print(x) for x in numbers]
1
2
3
[None, None, None]
为什么最后打印三个无?
原文由 Apollo 发布,翻译遵循 CC BY-SA 4.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 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答894 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
列表理解不是手头工作的正确工具。它总是会返回一个 _列表_,并且鉴于
print()
计算为None
,列表中填充了None
值当我们对创建值列表不感兴趣,只对评估没有返回值的函数感兴趣时,一个简单的for
循环效果更好: