优化列表的搜索

2024-10-03 13:18:32 发布

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

我需要以最佳方式在列表中进行搜索。基本上,如果列表中的任何元素介于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

Tags: 列表getif方式数字结构list损失
1条回答
网友
1楼 · 发布于 2024-10-03 13:18:32

这是Python吗?你应该给它贴上标签

你不是在这里搜索;您正在处理列表中的每个元素,以检查其是否超出范围

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

另外,您以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()

相关问题 更多 >