gpt4 book ai didi

python - 在嵌套 for 循环中使用 try- except

转载 作者:行者123 更新时间:2023-12-01 07:52:46 25 4
gpt4 key购买 nike

我有一个嵌套循环,我在 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- except block 来迭代所有网格点。我认为这不起作用——它似乎无限循环。

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))

最佳答案

我认为您可能正在寻找 pass 语句而不是 continue。但我可能不太明白你的问题。顺便说一句,你不能对其进行矢量化吗?

看起来唯一可能引发 IndexValue 错误的是 calc 函数,因为所有循环都在范围。为什么不直接用函数和数组赋值来包装 2 行代码呢?

关于python - 在嵌套 for 循环中使用 try- except,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56116863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com