防止列表理解被零除 - python

我有以下代码:

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)]

如果divide(x, y),函数y == 0返回1,如果(x / y),则返回y > 0。但我想知道是否有更简单的方法。也许我可以使用一些三元运算符,但是在Python中存在吗?

python参考方案

是的,在Python中称为conditional expression:

[matrix[i][i] / sum(matrix[i]) if sum(matrix[i]) != 0 else 0 
 for (i, scores) in enumerate(matrix)]

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

Python pytz时区函数返回的时区为9分钟 - python

由于某些原因,我无法从以下代码中找出原因:>>> from pytz import timezone >>> timezone('America/Chicago') 我得到:<DstTzInfo 'America/Chicago' LMT-1 day, 18:09:00 STD…

用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…

如何打印浮点数的全精度[Python] - python

我编写了以下函数,其中传递了x,y的值:def check(x, y): print(type(x)) print(type(y)) print(x) print(y) if x == y: print "Yes" 现在当我打电话check(1.00000000000000001, 1.0000000000000002)它正在打印:<…

Python:如何根据另一列元素明智地查找一列中的空单元格计数? - python

df = pd.DataFrame({'user': ['Bob', 'Jane', 'Alice','Jane', 'Alice','Bob', 'Alice'], 'income…