model_names = ['is1', 'is5', 'is10', 'im1', 'im5', 'im10']
作为一个例子,
models = [0.1, 0.2, 0.1, 0.3, 0.2, 0.3]
列表中的最大值是0.3,对应的模型名称为“im1”和“im10”。我想要这个函数。
dominant_model(models)
要返回
['im1', 'im10']
即最“占主导地位”的模型。
以下是我的代码,实现了该功能,但我想知道是否有更短的方法来完成同样的事情,而不需要所有条件语句:
def dominant_model(models):
m = max(models)
dom_models = [i for i,j in enumerate(models) if j==m]
for i in range(len(dom_models)):
if dom_models[i]==0:
dom_models[i]=model_names[0]
elif dom_models[i]==1:
dom_models[i]=model_names[1]
elif dom_models[i]==2:
dom_models[i]=model_names[2]
elif dom_models[i]==3:
dom_models[i]=model_names[3]
elif dom_models[i]==4:
dom_models[i]=model_names[4]
elif dom_models[i]==5:
dom_models[i]=model_names[5]
return dom_models