You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据用户输入选择对应列表存储值并优化多模型参数逻辑?

如何根据用户输入的模型名称获取对应参数值?

你当前的问题在于,把用户输入的字符串变量model当成了列表来索引,导致取出的是输入字符串的第N个字符(比如输入"Warrior"时,model[0]取到的是字符'W'),而非对应模型的参数列表。解决这个问题的最佳方式是用字典建立模型名称与参数集合的映射,既能避免冗余,又能快速匹配参数。

方案1:用字典映射模型名到参数列表

这种方式适合参数顺序固定的场景,代码简洁:

model = input("Attacking Model:")
unit = float(input(f"How many {model}'s:"))

# 定义模型参数字典,键为模型名称,值为对应参数列表
model_params = {
    "Warrior": [3, 4/6, 5, 2, 1],
    "Ravener": [5, 4/6, 5, 2, 1]
}

# 校验输入的模型是否存在
if model in model_params:
    params = model_params[model]
    bal_Shot = unit * params[0]
    bal_Skill = params[1]
    bal_Str = params[2]
    bal_AP = params[3]
    bal_Dam = params[4]
    print(f"计算后的射击值:{bal_Shot}")
else:
    print(f"未找到模型 {model} 的参数!")

方案2:用字典映射模型名到参数字典(可读性更强)

如果参数较多,用字典存储参数可以避免索引混淆,代码可读性更高:

model = input("Attacking Model:")
unit = float(input(f"How many {model}'s:"))

model_params = {
    "Warrior": {
        "shot_multiplier": 3,
        "skill": 4/6,
        "strength": 5,
        "ap": 2,
        "damage": 1
    },
    "Ravener": {
        "shot_multiplier": 5,
        "skill": 4/6,
        "strength": 5,
        "ap": 2,
        "damage": 1
    }
}

if model in model_params:
    params = model_params[model]
    bal_Shot = unit * params["shot_multiplier"]
    bal_Skill = params["skill"]
    bal_Str = params["strength"]
    bal_AP = params["ap"]
    bal_Dam = params["damage"]
    print(f"计算后的射击值:{bal_Shot}")
else:
    print(f"未找到模型 {model} 的参数!")

额外优化:处理输入大小写问题

如果希望忽略用户输入的大小写(比如输入"warrior"也能匹配到"Warrior"),可以将输入和字典键统一转为小写:

model_input = input("Attacking Model:").strip().lower()
unit = float(input(f"How many {model_input}'s:"))

model_params = {
    "warrior": [3, 4/6, 5, 2, 1],
    "ravener": [5, 4/6, 5, 2, 1]
}

if model_input in model_params:
    params = model_params[model_input]
    # 后续参数赋值逻辑不变

这种字典方案的优势在于,新增模型时只需在字典中添加一组键值对,无需修改大量分支判断代码,从根本上解决了冗余问题。

内容的提问来源于stack exchange,提问作者Embie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 18:21:32