Dash中一系列if语句的最佳解决方案

问题描述

这可能是一个简单的问题,但是我是Python和Dash的新手,将非常感谢您的帮助。基本上,我试图基于两个单独的条件动态加载图像。

此功能:

def graph_loss (city,model): 

    if city == 1:
    
        if model == 4:
            Loss = ('assets/images/AU_wind_Loss_MLP.png')
    
        if model == 5:
            Loss = ('assets/images/AU_wind_Loss_LSTM.png')
    
        if model == 6:
            Loss = ('assets/images/AU_wind_Loss_CNN.png')
    
    if city == 2:

        if model == 4:
            Loss = ('assets/images/FR_wind_Loss_MLP.png')
    
        if model == 5:
            Loss = ('assets/images/FR_wind_Loss_LSTM.png')

        if model == 6:
            Loss = ('assets/images/FR_wind_Loss_CNN.png')

    if city == 3:

        if model == 4:
            Loss = ('assets/images/DK_wind_Loss_MLP.png')
    
        if model == 5:
            Loss = ('assets/images/DK_wind_Loss_LSTM.png')

        if model == 6:
            Loss = ('assets/images/DK_wind_Loss_CNN.png')

    return (Loss)

我想减少很多,但是我正在努力地动态更改文件名。任何帮助将不胜感激。

解决方法

为您的两种翻译使用字典:城市代码和型号代码。 然后只需从片段中构建您的字符串即可。

.navigationBarTitle

请注意,任何形式的格式设置(例如f字符串)都会使文件名更具可读性和Python风格,但我想将此保持在您当前的编程水平。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...