优化列表的搜索

问题描述 投票:0回答:1

我需要以最佳方式在列表中进行搜索。基本上,如果列表中的任何元素在Vmin和Vmax之间,并且是一个数字(有时该过程生成的结果不是数字:/),则我需要评估损失(我有一个函数可以执行此操作)。否则,我将蒙受巨大损失,例如10 ** 10。您能帮我优化此搜索吗?我将结构更改为list(),因为它最初是一个元组,并且我不知道如何操作此结构:/

def losses():
    Tensoes = list(objeto.get_AllNodeVpu())
    Lim = 0
    for i in Tensoes:
        if (i <= Vmin) or (i >= Vmax):
            Lim += 1
        if (np.isnan(i) == True):
            Lim += 1

    if (Lim == 0)
        loss = objeto.get_circuit_total_losses()
    else:
       loss = 10**10        

    return loss
python search optimization
1个回答
0
投票

这是Python吗?您应该然后对其进行标记。

您不在此处进行搜索;您正在处理列表中的每个元素以检查其是否超出范围。

您的列表排序了吗?然后,您只能检查其第一个和最后一个元素。但是,如果您必须对它进行排序-它将比当前的实现更加昂贵。

P.S。您以It's me again开头,但您的状态显示这是您的第一篇文章:)

附录:好吧,您无需在找到第一个“无效”元素后循环。我不了解Python,但应该类似于:

def losses() :
    Tensoes = list(objeto.get_AllNodeVpu())
    for i in Tensoes :
        if np.isnan(i) == True or i <= Vmin or i >= Vmax :
            return 10 * *10

    return objeto.get_circuit_total_losses()
© www.soinside.com 2019 - 2024. All rights reserved.