压缩多个if语句

时间:2015-08-22 01:23:53

标签: python

现在我的python代码如下所示:

if imput == "con":
    print "%.6f" % (con_getinfo["balance"])
elif imput == "xra":
    print "%.6f" % (xra_getinfo["balance"])
elif imput == "neg":
    print "%.6f" % (neg_getinfo["balance"])
elif imput == "grf":
    print "%.6f" % (grf_getinfo["balance"])
elif imput == "ninja":
    print "%.6f" % (ninja_getinfo["balance"])

现在我想让它看起来不那么重复,就像这样:

if imput == con or imput == xra or imput == neg or imput == grf or imput == ninja:

但我无法弄清楚如何为每个条件分配正确的反应。

2 个答案:

答案 0 :(得分:4)

您可以在字典中存储对函数的引用,然后它只是一个简单的查找:

response = {
    "con": con_getinfo,
    "neg": neg_getinfo,
    ...
}
print "%.6f" % (response[imput]["balance"])

答案 1 :(得分:1)

这可以说是一个骗局,但简而言之...... pythonic方式是使用字典。可能有更好的方法来重构这个,但要开始:

2