使用多个列表时,如何避免在零时避免错误

发布于 2025-01-26 09:52:14 字数 276 浏览 4 评论 0原文

我有2个列表,每个列表中有4个值。每次运行代码时,这些值都会更改。

probability = [4, 0.004e-2, 5.5, 0.0]
miss = [6954, 12507, 3621, 10440]

我一直在将列表插入此公式中,该公式在看到0时会破裂。我该怎么做才能停止错误(用空或0替换)?

severity = [a * 100 / b for a, b in zip(miss, probability)]

I have 2 lists with 4 values in each. These values will change every time the code is run.

probability = [4, 0.004e-2, 5.5, 0.0]
miss = [6954, 12507, 3621, 10440]

I have been plugging the lists into this formula which breaks when it sees a 0. What can I do to stop the errors (either replaced with a null or 0)?

severity = [a * 100 / b for a, b in zip(miss, probability)]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

难忘№最初的完美 2025-02-02 09:52:15
severity = [0 if b==0 else a * 100 / b for a, b in zip(miss, probability)]

也就是说,当b为0时,请使用条件表达式避免进行除法。

severity = [0 if b==0 else a * 100 / b for a, b in zip(miss, probability)]

That is, use a conditional expression to avoid doing division when b is 0.

绮烟 2025-02-02 09:52:15

一种解决方案是测试b的值永远不会为零。如果是这样,请提出异常,或者分配严重性您指出的一些非平凡的值,例如none。您可以做这样的事情:

severity = [None if b == 0 else a * 100 / b for a, b in zip(miss, probability)]

One solution is to test that values of b are never zero. If it is, either raise an exception, or assign severity some non-trivial value such as None, as you pointed out. You could do something like this:

severity = [None if b == 0 else a * 100 / b for a, b in zip(miss, probability)]

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文