Python - 使用测试列出符合度以避免被零除

ato*_*3ls 2 python numpy list

a并且b是1维numpy数组(或python列表):

我这样做:

>>> c = [x/y for x,y in zip(a,b)]
Run Code Online (Sandbox Code Playgroud)

偶尔b会有一个零 - 因此会出现零除错误.

如何有条件地检查0值b并将相应的元素设置c为0?

Roh*_*ain 9

你可以在列表理解中使用if-else条件:

>>> c = [x/y if y else 0 for x,y in zip(a,b)]
Run Code Online (Sandbox Code Playgroud)

  • 不,这种情况无关紧要.这只是一个偏好问题. (2认同)

Ash*_*ary 8

您可以在列表解析中使用三元表达式:

[x/y if y!= 0 else 0 for x,y in zip(a,b)]
Run Code Online (Sandbox Code Playgroud)