Python 优化列表';s搜索
我需要以最佳方式在列表中进行搜索。基本上,如果列表中的任何元素介于Vmin和Vmax之间,并且是一个数字(有时该过程生成的结果不是数字:/),我需要评估损失(我有一个函数来完成此操作)。否则,我会给它一个巨大的损失,比如10*10。你能帮我优化这个搜索吗?我将结构更改为list(),因为它最初是一个元组,我不知道如何操作此结构:/Python 优化列表';s搜索,python,search,optimization,Python,Search,Optimization,我需要以最佳方式在列表中进行搜索。基本上,如果列表中的任何元素介于Vmin和Vmax之间,并且是一个数字(有时该过程生成的结果不是数字:/),我需要评估损失(我有一个函数来完成此操作)。否则,我会给它一个巨大的损失,比如10*10。你能帮我优化这个搜索吗?我将结构更改为list(),因为它最初是一个元组,我不知道如何操作此结构:/ def losses(): Tensoes = list(objeto.get_AllNodeVpu()) Lim = 0 for i in
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
def loss():
Tensoes=list(objeto.get_AllNodeVpu())
Lim=0
对于时态中的i:
如果(i=Vmax):
Lim+=1
如果(np.isnan(i)=真):
Lim+=1
如果(Lim==0)
损耗=目标。获取电路总损耗()
其他:
损失=10*10
回波损耗
这是Python吗?你应该给它贴上标签
你不是在这里搜索;您正在处理列表中的每个元素,以检查其是否超出范围
你的名单排序了吗?然后,您只能检查它的第一个和最后一个元素。但是如果您必须对它进行排序,那么它将比您当前的实现更加昂贵
另外,你从开始,又是我
,但你的状态显示这是你的第一篇帖子:)
附加:
在找到第一个“无效”元素后,不需要循环。我不懂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()
def loss():
Tensoes=list(objeto.get_AllNodeVpu())
对于时态中的i:
如果np.isnan(i)=真或i=Vmax:
返回10**10
返回对象。获取电路总损耗()
标记,谢谢提示,是的,第二篇文章。第一个是关于随机字符串。。。所以,不,列表没有排序,但我不需要排序。该列表包含一组节点电压,我需要验证所有节点是否都在限制范围内。在计算机编程教育的这一阶段,您不应该太担心优化。您需要学习使用大Oh符号分析算法,以了解可能的优化。您还需要了解如何使用探查器来测量代码段运行所需的时间。感谢您提供的提示。我会寻找的:DI一直在寻找可以帮助我的东西,我想我的问题更多的是关于“做这种搜索的Python方式”