Python之dict的妙用

jclian91發表於2017-10-07

  眾所周知,Python的語法裡沒有像C語言中的switch…case…語法結構,所以有時候當我們想要用這個語法時不免捉急。不過不用怕,Python的dict資料結構有時能夠很好地幫助我們實現switch…case…結構。
  我們以下面一段程式為例來說明:

def operation(a,b,op):
    if op == `+`:
        return a+b
    if op == `-`:
        return a-b
    if op == `*`:
        return a*b
    if op == `/`:
        return a/b

if __name__ == `__main__`:
    a=1
    b=2
    print(`a+b=`, operation(a,b,`+`))
    print(`a-b=`, operation(a,b,`-`))
    print(`a*b=`, operation(a,b,`*`))
    print(`a/b=`, operation(a,b,`/`))

  在上面的程式中,因為Python本身缺少switch…case…語法,因此只能使用if語句,但這樣會造成很大的不便和浪費。我們嘗試著用dict(字典)來解決這個問題。程式碼如下:

def operation(a,b,op):
    op_dict = {`+`:a+b, `-`:a-b, `*`:a*b, `/`:a/b,}
    return op_dict[op]

if __name__ == `__main__`:
    a=1
    b=2
    print(`a+b=`, operation(a,b,`+`))
    print(`a-b=`, operation(a,b,`-`))
    print(`a*b=`, operation(a,b,`*`))
    print(`a/b=`, operation(a,b,`/`))

  在上面的程式中,我們利用dict資料結構的key-value對即可實現switch…case…語法,由此可以看出這種方法的簡潔和便利。
  當然這僅僅只是一個例子,有興趣的同學可以多多嘗試,說不定能找到更多dict的妙用~~



  本次分享到此結束,歡迎交流與批評~~


相關文章