什么可以阻止使用小写名称的列表理解显示在Spyder的变量资源管理器中?

时间:2017-06-16 18:21:13

标签: python spyder

我希望这不是一个微不足道的问题,但我已经使用以下代码(测试代码,真的)创建了列表理解:

a = [1., 2., 3., 4., 5., 6., 7., 8., 9.]
b = [d if d > 5. else None for d in a]

...并且b没有出现在Spyder的变量浏览器中。但是,在ipython控制台中我得到了

In  [1]: b
Out [1]: [None, None, None, None, None, 6.0, 7.0, 8.0, 9.0]

这里发生了什么?

附录:当我输入c = None时,c也不会出现在变量资源管理器中。

2 个答案:

答案 0 :(得分:2)

Spyder开发人员)问题似乎是将None元素作为b列表的一部分。如果您将代码更改为

a = [1., 2., 3., 4., 5., 6., 7., 8., 9.]
b = [d if d > 5. else False for d in a]

然后b出现在Variable Explorer中。

然而,这是一个错误,我们将为Spyder 3.2修复它(将在几周内发布)。

答案 1 :(得分:0)

Spyder的Variable Explorer

NoneType 不是支持的数据类型; supported data types

  
      
  1. Pandas DataFrame,TimeSeries和DatetimeIndex对象
  2.   
  3. NumPy数组和矩阵
  4.   
  5. PIL / Pillow图片
  6.   
  7. 日期时间日期
  8.   
  9. 整数
  10.   
  11. 浮筒
  12.   
  13. 复数
  14.   
  15. 解释
  16.   
  17. 字典
  18.   
  19. 元组
  20.   
  21. 字符串
  22.   

但您可以取消选中"排除不支持的数据类型"在Variable Explorer首选项中显示所有变量(当然包括您的b):

Tools -> Preferences -> Variable explorer -> Exclude unsupported data types (uncheck it).