任何人都能理解如何处理map()中的错误?我希望能够在没有程序崩溃的情况下处理这种错误。
def add_one(val):
raise Exception('My error!')
return val+1
values = [1,2,3,4]
# Does not work
try:
new_values = map(add_one, values)
except:
new_values = []
print(list(new_values)) # Raises an Exception: My error!
# Works
try:
new_values = []
for x in values:
new_values.append(add_one(x))
except:
new_values = []
print(new_values) # Returns []
答案 0 :(得分:1)
map
是懒惰的 - 在必要之前它实际上并没有消耗数据。
因此,您提供的两个例子并不相同。