如何在忽略零值的情况下遍历列表

2024-09-28 20:39:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在忽略零值的情况下遍历列表。该列表包括浓度值,对于这些值,应进行计算。在某些点,浓度为零,因此计算将返回错误。我不知道如何解决这个问题。理想情况下,我希望忽略列表中的零。另一种选择是在遇到错误时让计算返回零。我试着解决它,除了。然后它返回一个“RuntimeWarning:除以日志中遇到的零”,我试图用np.errstate行忽略它。运行此命令只会为列表中的第一项返回一个值。我希望列表中的每个项目都有一个值。我对python非常陌生,基本上不知道如何解决这个问题。任何帮助都将不胜感激

def calculate_deltaGr():
    deltaG0T = calculate_deltaG0()[0]
    deltaGr_list = []
    for Con1 in Con1_list:
        with np.errstate(divide='ignore'):
            try:
                deltaGr = deltaG0T + R * T1 * np.log((Con1 ** n_con1) / ((Con2 ** n_con2) * (Con3 ** n_con3) * (Con4 ** n_con4)))
                deltaGr_list.append(deltaGr)
            except TypeError:
                return 0
            return deltaGr_list

只有con1应该是可变的。Con2、Con3和Con4是固定值


Tags: 列表错误np情况listcalculate浓度con1
2条回答

如果您在得到0时不想做任何事情,请使用continue

for Con1 in Con1_list:
    if Con1 == 0: continue

使用一个简单的if语句就可以了。使用try/except不是最好的。你知道一个输入可以是零,为什么不检查一下呢?如果希望列表中有一个值作为占位符,可以返回一个较大的超出范围的值,或者像现在一样返回0

相关问题 更多 >