什么可以阻止带有小写名称的列表推导式出现在 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 是
- Pandas DataFrame, TimeSeries and DatetimeIndex objects
- NumPy arrays and matrices
- PIL/Pillow images
- datetime dates
- Integers
- Floats
- Complex numbers
- Lists
- Dictionaries
- Tuples
- Strings
但是您可以取消选中变量资源管理器首选项中的"Exclude unsupported data types" 以显示所有变量(包括您的b
, 当然):
Tools -> Preferences -> Variable explorer -> Exclude unsupported data types (uncheck it).
我希望这不是一个微不足道的问题,但我已经使用以下代码(实际上是测试代码)创建了一个列表推导式:
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 是
- Pandas DataFrame, TimeSeries and DatetimeIndex objects
- NumPy arrays and matrices
- PIL/Pillow images
- datetime dates
- Integers
- Floats
- Complex numbers
- Lists
- Dictionaries
- Tuples
- Strings
但是您可以取消选中变量资源管理器首选项中的"Exclude unsupported data types" 以显示所有变量(包括您的b
, 当然):
Tools -> Preferences -> Variable explorer -> Exclude unsupported data types (uncheck it).