我希望涉及一个或多个 None 变量的所有数学运算都返回 None。
示例:
a = None
b = 7
a*b
我希望最后一行返回 None,但它却给我一个错误:
TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
我明白为什么会出现这个错误等等,但是有没有办法强制结果只是一个None
?
背景:我有几个函数可以挖掘数据并返回一个值,称为 diff
。后来我将 diff
乘以或添加到一些东西上以获得有意义的信息,但并不是我所有的原始数据都包含有用的 diff
,所以我将它设置为 return diff = None
在这些情况下。我希望在绘制结果时能够跳过这些点。当我绘图时,Python 似乎可以毫不费力地跳过数组中的 None
元素,所以我只想让操作的结果为 None
。
最佳答案
您可以简单地使用 NaN
,而不是试图强制所有包含其他任意值的数学运算返回该任意其他值。 ,正是为这种目的而设计的:
>>> nan = float("NaN")
>>> 7 * nan
nan
>>> 7 + nan
nan
nan
将正确地级联整个数学运算。
一个好的绘图库也会理解 nan
并在绘图时忽略它们。但如果不是,只需在绘图之前立即将 NaN
替换为 None
。
关于python - 如何将所有涉及 None 的 python 操作转换为 None 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38578494/