У меня есть вложенный цикл, в котором я выполняю вычисления для каждой точки сетки в 3-мерном массиве.Некоторые из этих точек сетки вызывают ошибку.Я хочу рассчитать каждую возможную точку сетки и пропустить те, которые вызывают ошибку.
Я пробовал:
with sharedmem.MapReduce(np=45) as pool:
def calc_func(abc):
for k in range(241):
try:
for j in range(int(datetime_range)):
for l in range((abc), abc+1):
value = calc(pr[j,k,l], te[j,k,l], de[j,k,l])
array[j,k,l] = value
except (IndexError, ValueError):
continue
pool.map(cape_func, range(0, 479))
^ Выше, некоторые точки сетки рассчитываются, но я думаю,когда значения k попадают в исключение, код не рассчитывает оставшиеся точки сетки для этого k.
Ниже я попытался добавить еще один блок try-исключения для итерации по всей сетке.точки.Я не думаю, что это сработало - кажется, что оно зацикливается бесконечно.
with sharedmem.MapReduce(np=45) as pool:
def calc_func(abc):
for k in range(241):
try:
for j in range(int(datetime_range)):
try:
for l in range((abc), abc+1):
value = calc(pr[j,k,l], te[j,k,l], de[j,k,l])
array[j,k,l] = value
except (IndexError, ValueError):
continue
except (IndexError, ValueError):
continue
pool.map(cape_func, range(0, 479))