首页 > 解决方案 > 在用户输入有多少变量的情况下,我应该使用什么来在函数内部创建多个变量?

问题描述

我让熊猫读取 csv,用户输入他们想要多少个机场,并且 csv 记录这些。然后我将 csv 导入到一个单独的脚本中,该脚本需要根据用户选择的变量数量来运行命令。我目前只写了 22 种不同的 if...elif...else 语句并手动将变量放入,必须有一个更有效更简单的方法。

下面是一个例子,我在ans1-ans22中写了同样的东西。相反,我希望 ans# 基于用户创建的输入数量以及要遵循的一些变量

 ans1 = metar.loc[ap1, 'flight_category']
 ans2 = metar.loc[ap2, 'flight_category']

然后以后...

    if ans1 == 'VFR':
        led1 = 'GREEN'
        pixels[0] = grn
    elif ans1 == 'MVFR':
        led1 = 'BLUE'
        pixels[0] = blu
    elif ans1 == 'IFR':
        led1 = 'RED'
        pixels[0] = red
    elif ans1 == 'LIFR':
        led1 = 'PINK'
        pixels[0] = pnk
    else:
        print('ERROR')

    if ans2 == 'VFR':
        led2 = 'GREEN'
        pixels[2] = grn
    elif ans2 == 'MVFR':
        led2 = 'BLUE'
        pixels[2] = blu
    elif ans2 == 'IFR':
        led2 = 'RED'
        pixels[2] = red
    elif ans2 == 'LIFR':
        led2 = 'PINK'
        pixels[2] = pnk
    else:
        print('ERROR')

如果有更简单的方法可以做到这一点,它会对我有很大帮助,我是新来的,现在只是在 youtube 上学习!谢谢!

标签: pandaslistvariables

解决方案


如果我理解正确,您希望根据“ans”变量的值执行特定的事情,但没有所有 if 语句。

这可以通过使用列表来完成。

possibleAns = ['VFR', 'MVFR', 'IFR', 'LIFR']
possibleLed = ['GREEN', 'BLUE', 'RED', 'PINK']
possiblePixels = [grn, blu, red, pnk]

if(ans1 in possibleAns1):
    index = possibleAns.index(ans1);
    led1 = possibleLed[index]
    pixels[0] = possiblePixels[index]
else:
    print('ERROR')

# Do the same for ans2

至于多个函数输入,您可能需要查看“argv”和“kwargs”。


推荐阅读