Python中如何避免使用多个分支语句(多个if和else)——函数字典(Function Map)简介

来源:互联网 发布:2017高仿耐克淘宝店 编辑:程序博客网 时间:2024/05/01 04:49

在程序中,我们经常会遇到需要写很多分支语句的情况,这时候一般的作法就是写很多个if和else或者if和else if。但采用这种写法的代码效率比较低,而且可读性也比较差。

在Python中,我们可以采用Function Map的方法,避免使用多个分支语句,提高效率。

具体的作法就是把在某个条件下要执行的过程写成一个函数,然后把该条件本身和对应的函数作为一对Key-Value放入一个字典(Dictionary)中,该字典相当于一个Map。然后只要执行这个Function Map就行了。

例如,下面的代码是求一个数除以10的余数,并打印出来,可以这样写:

while True:    n = raw_input()    i = int(n) % 10    if i == 0:        print 0    elif i == 1:        print 1    elif i == 2:        print 2    elif i == 3:        print 3    elif i == 4:        print 4    elif i == 5:        print 5    elif i == 6:        print 6    elif i == 7:        print 7    elif i == 8:        print 8    elif i == 9:        print 9


Function Map可以这样写:

def get0():    print 0def get1():    print 1def get2():    print 2def get3():    print 3def get4():    print 4def get5():    print 5def get6():    print 6def get7():    print 7def get8():    print 8def get9():    print 9dict = {0:get0, 1:get1, 2:get2, 3:get3, 4:get4,        5:get5, 6:get6, 7:get7, 8:get8, 9:get9}while True:    n = raw_input()    i = int(n) % 10    dict[i]()

原创粉丝点击