gpt4 book ai didi

python - 删除列表中与另一个列表中的最大值不对应的项目

转载 作者:行者123 更新时间:2023-12-03 00:18:51 25 4
gpt4 key购买 nike

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

最佳答案

找到最大值 m = max(model) 后,将模型名称压缩到值,并采用值等于 m 的名称。

def dominant(names, values):
m = max(values)
return [name for name, value in zip(names, values) if value == m]
<小时/>

演示

>>> model_names = ['is1', 'is5', 'is10', 'im1', 'im5', 'im10']
>>> model_values = [0.1, 0.2, 0.1, 0.3, 0.2, 0.3]
>>> dominant(model_names, model_values)
['im1', 'im10']

关于python - 删除列表中与另一个列表中的最大值不对应的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47639165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com