Lew*_*ick 4 python list-comprehension divide-by-zero
我有以下代码:
scores = [matrix[i][i] / sum(matrix[i]) for (i, scores) in enumerate(matrix)]
Run Code Online (Sandbox Code Playgroud)
我的问题是sum(confusion_matrix [idx])在某些情况下可能为0,从而导致a sum(matrix[i]).但因为ZeroDivisionError在这种情况下也是0,我解决了这个问题如下:
scores = [divide(matrix[i][i], sum(matrix[i])) for (i, scores) in enumerate(matrix)]
Run Code Online (Sandbox Code Playgroud)
matrix[i][i]如果divide(x, y)和y == 0if ,函数返回1 (x / y).但我想知道是否有更简单的方法.也许我可以使用一些三元运算符,但在Python中是否存在?
是的,在python中它被称为条件表达式:
[matrix[i][i] / sum(matrix[i]) if sum(matrix[i]) != 0 else 0
for (i, scores) in enumerate(matrix)]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
714 次 |
| 最近记录: |