pandas - 在用户输入有多少变量的情况下,我应该使用什么来在函数内部创建多个变量?
问题描述
我让熊猫读取 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 上学习!谢谢!
解决方案
如果我理解正确,您希望根据“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”。
推荐阅读
- android-studio - 如何在颤振中使用局部变量值?
- loops - 批量动态分配变量
- html - 为什么“-webkit-text-security: circle;”不 做任何事情?
- python-3.x - 为我想使用 Run Keywords 方法调用的所有关键字获取参数错误
- javascript - Git return "'pull' is not a git command. See 'git --help'" from remote on Windows 10
- vb.net - 按组合框中的值自动填充文本框
- wordpress - 在“编辑帖子”管理页面中显示自定义分类
- flutter - 飞行模式服务颤抖
- cordova - ionic 3 在 WKWebView 中启用摄像头和麦克风访问
- isabelle - 如何在 Isabelle 中创建适当的引理来证明这个引理?