什么可以阻止带有小写名称的列表推导式出现在 Spyder 的变量浏览器中?

What could prevent a list comprehension with a lowercase name from showing up in Spyder's variable explorer?

我希望这不是一个微不足道的问题,但我已经使用以下代码(实际上是测试代码)创建了一个列表推导式:

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 也没有出现在变量资源管理器中。

(Spyder developer here) 问题似乎出在 None 元素作为 b 列表的一部分。如果您将代码更改为

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

然后 b 出现在变量资源管理器中。

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

NoneType 不是 Spyder 变量资源管理器支持的数据类型supported data types

  1. Pandas DataFrame, TimeSeries and DatetimeIndex objects
  2. NumPy arrays and matrices
  3. PIL/Pillow images
  4. datetime dates
  5. Integers
  6. Floats
  7. Complex numbers
  8. Lists
  9. Dictionaries
  10. Tuples
  11. Strings

但是您可以取消选中变量资源管理器首选项中的"Exclude unsupported data types" 以显示所有变量(包括您的b, 当然):

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