在python中替换if和elif的有效方法

时间:2016-03-24 07:11:59

标签: python-2.7

我有,

                if str1 in bigger_str or str2 in bigger_str:
                    return X
                elif str3 in bigger_str or str4 in bigger_str:
                    return Y
                else:
                    return Z

这是否有效或是否有更有效的执行方式和LOC

2 个答案:

答案 0 :(得分:0)

我认为没有更短的版本。 但在这种特定情况下,每个条件都会生成return语句,您可以删除最后一个else,如下所示:

                if str1 in bigger_str or str2 in bigger_str:
                    return X
                elif str3 in bigger_str or str4 in bigger_str:
                    return Y
                return Z

如果你真的只对LOC的数量感兴趣,你也可以删除换行符:

                if str1 in bigger_str or str2 in bigger_str: return X;
                elif str3 in bigger_str or str4 in bigger_str: return Y;
                return Z

答案 1 :(得分:0)

python中的switch case的替代方法是这样的

def run(string x):
    return {
      str1:x,
      str2:x,
    }.[x]

Switch if是一个很好的替代if if但是python没有switch case。