次のコードがあります。
scores = [matrix[i][i] / sum(matrix[i]) for (i, scores) in enumerate(matrix)]
私の問題は、sum(matrix[i])
場合によっては 0 になる可能性があり、ZeroDivisionError
. しかしmatrix[i][i]
、その場合も 0 であるため、次のように解決しました。
scores = [divide(matrix[i][i], sum(matrix[i])) for (i, scores) in enumerate(matrix)]
この関数は、 ifおよびifの場合divide(x, y)
に 1 を返します。しかし、もっと簡単な方法があるのだろうかと思います。三項演算子を使用できるかもしれませんが、それは Python に存在しますか?y == 0
(x / y)
y > 0