python - 如何将所有涉及 None 的 python 操作转换为 None 值?

标签 python nonetype

我希望涉及一个或多个 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/

相关文章:

python - 如何使用 python 从帧创建视频?

python - 从文本中提取表情符号

python - Docsify 文档的基本 Flask 实现

python - PyBox2D - NoneType 在碰撞过滤期间不可下标

python - 默认参数是否会覆盖 mypy 的类型提示?

python-2.7 - feature_importances_ 在 ExtraTreesClassifier :TypeError: 'NoneType' object is not iterable 中显示为 NoneType

python - 为什么我打包的 eel 应用程序执行失败 : AttributeError: 'NoneType' object has no attribute 'write'

python - sqlalchemy 插入或更新的简单方法?

python - 在 Jenkins 中发送电子邮件时添加 png 图像和表格 html

python - 来自YahooFinance的价格数据错误: TypeError: unsupported type for timedelta seconds component: NoneType