【发布时间】:2015-12-23 04:03:22
【问题描述】:
下面的例子很简单。我想用一个可以引发异常的函数来执行 map()。举个例子会更清楚:
number_list = range(-2,8)
def one_divide_by(n):
return 1/n
try:
for number, divide in zip(number_list, map(one_divide_by, number_list)):
print("%d : %f" % (number, divide))
except ZeroDivisionError:
# Execution is stopped. I want to continue mapping
pass
当我执行这段代码时,我得到:
-2 : -0.500000
-1 : -1.000000
这是由于我的列表中的 0。我不想删除这个 0 (因为在实际情况下,我不能先知道我是否会得到异常)。 你知道如何在异常发生后继续映射?
【问题讨论】:
-
如果你知道用什么值代替'infinite'然后使用
try: return 1/n; except ZeroDivisionError: return yourvalue
标签: python dictionary exception-handling python-3.4