for循环的简短版本,被零除

时间:2018-12-16 20:00:20

标签: python python-3.x list for-loop

为了解决问题,我有以下数据。

A = [170,170,150]
b = 160
C = [2,2]
xb = [b/(k-1) for k in C]
print(xb)

输出:

[160.0, 160.0]

现在更改C列表:

A = [170,170,150]
b = 160
C = [2,1]
xb = [b/(k-1) for k in C]
print(xb)

输出:

Error ZeroDivisionError: division by zero

好吧,预计它不会运行,现在我们找到了运行它的解决方案。

xb = []
for k in C:
    try:
        xb.append(b/(k-1))
    except ZeroDivisionError:
        xb.append(0)
print(xb)

输出:

[160.0, 0]

我的问题是如何编写上述解决方案的简短版本,例如第一个解决方案?

3 个答案:

答案 0 :(得分:1)

您可以检查列表推导内是否存在被零除的情况,如下所示:

<template>
  <view class="container">
    <text class="text-color-primary">My Vue Native App</text>
    </view>
</template>

<style>
.container {
  background-color: white;
  align-items: center;
  justify-content: center;
  flex: 1;
}
.text-color-primary {
  color: blue;
}
</style>

输出:

A = [170,170,150]
b = 160
C = [2,1]
xb = [b/(k-1) if k != 1 else 0 for k in C]
print(xb)

答案 1 :(得分:1)

您的示例之一的解决方案

for (var i = 1; i < this.people.length; i++) {

答案 2 :(得分:1)

A = [170,170,150]
b = 160
C = [2,1]
xb = [b/(k-1) if k != 1 else 0 for k in C]
print(xb)