如何在列表推导中处理异常?

6 浏览
0 Comments

如何在列表推导中处理异常?

我在Python中有一个列表推导式,在每次迭代中可能会抛出异常。

例如,如果我有:

eggs = (1,3,0,3,2)

[1/egg for egg in eggs]

在第三个元素中,我会得到一个ZeroDivisionError异常。

我该如何处理这个异常并继续执行列表推导式?

我能想到的唯一办法是使用一个辅助函数:

def spam(egg):

try:

return 1/egg

except ZeroDivisionError:

# 处理除零错误

# 现在先空着

pass

但是我觉得这样有点繁琐。

在Python中有更好的方法吗?

注意:这是一个我编造的简单示例(参见上面的“例如”),因为我的真实示例需要一些上下文。我不是为了避免除以零错误,而是在列表推导式中处理异常。

0