You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jupyter中使用含print的列表推导式出现意外None数组问题

问题现象原因解析

本质:列表推导式的返回值

print()函数执行时会输出内容,但它本身的返回值是None。所以[print(i) for i in A]这个列表推导式,在执行时会先逐个打印1-5,同时生成一个由5个None组成的列表。

普通Python脚本与Jupyter的执行差异

  • 在普通Python文件中,这个生成的[None, None, None, None, None]列表只是被创建出来,但没有被显式触发输出(比如没有用print()去打印它),所以你只会看到print(i)输出的1到5。
  • 在VS Code的Jupyter环境中,单元格会自动输出最后一个表达式的返回值。当列表推导式是单元格最后一行代码时,Jupyter会把这个None组成的列表自动打印出来,所以你会看到额外的[None,...]。

为什么加print("test")后None数组消失

当你在列表推导式后添加print("test"),此时单元格的最后一个表达式变成了print("test"),它的返回值同样是None,但Jupyter的默认行为是不会自动输出单个的None值(避免无意义的冗余输出)。而之前的列表推导式不再是最后一个表达式,所以它的返回值不会被自动输出,你就只会看到1-5和"test"的输出。

内容的提问来源于stack exchange,提问作者Krzyp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 18:52:03