elif使用字典,但没有超出值
这个问题在这里已经有了答案:
def functionA(a1, a2, a3):
results = {
'case1': a2 / a3 if a3 != 0.0 else a2,
'case2': 1,
# ...
}
return results[a1]
但是,我建议不要这种方法,因为必须首先计算整个字典才能提取单个值。
相反,如果你真的想使用字典并且效率很高,我会建议:
myproc = {
'case1': lambda a2, a3: a2 / a3 if a3 != 0.0 else a2,
'case2': lambda a2, a3: 1
}
然后:
>>> myproc['case1'](2, 3)
0.6666666666666666
你可以在字典中使用三元运算符
def functionA(a1, a2, a3):
results = {
'case1': a2 if a3==0 else a2/a3,
'case2': 1
}
return results[a1]
链接:https://repl.it/NRkd
如果它只是一个值,你可以用一个简单的if-else来完成。
def functionA(a1, a2, a3):
if a3:
case1_value = a2/a3
else:
case1_value = a2
results = {
'case1': case1_value,
'case2': 1,
...
}
return results[a1]
或者用这个if-else条件创建一个dvision函数并将其用于你的dict值。
链接地址: http://www.djcxy.com/p/42769.html