1. 程式人生 > >Python之dict的妙用

Python之dict的妙用

  眾所周知,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的妙用~~


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

相關推薦

python 切片--

之前的blog介紹過切片 可以參考 : python學習入門(一) 下面介紹下不同的切片 #字串的切片 x = "123456789" x=x[:-3]+x[-2:-1]+x[-1] print(x

Pythondict

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

Python:eval的和濫用

list 建議 表達式 博文 環境 dem 完整 定期 mat eval()函數十分強大,官方demo解釋為:將字符串str當成有效的表達式來求值並返回計算結果。 so,結合math當成一個計算器非常好用。 其它使用方法,能夠把list,tuple

PythonDict字典

ges 16px 標準 art 冒號 key python 內置 left 一、Dict(Dictionary)類型 Dict(中文叫字典)是另一種可變容器模型,且可存儲任意類型對象。 字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分

python with 語句

body 原理 value 協議 span print int ger world class aa(): def bb(self): print("hhhh") return "hello world" de

pythonuinttest,例執行順序

單元測試框架 構建 mage es2017 但是 images testsuite 順序執行 python unittest單元測試框架, 以test開頭的測試用例,默認執行順序是按照ASC碼來執行 如果有類,先排序執行類,在執行類中,再排序用例順序執行 如果想要按照指

Pythondict字典詳解

seq del AR blog 復制 mon 語言 方式 關鍵字 Python內置了字典:dict的支持,dict全稱dictionary,在其他語言中也稱為map,字典是另 一種可變容器模型,且可存儲任意類型對象。具有極快的查找速度。 字典是一種通過名字或者關鍵字引用的得

pythondict與set

python之dict與setdict全稱dictionary,使用鍵-值(key-value)存儲,書寫一個dictname={:::} (name[])當數據量大時,字典比列表和元組速度快dict實現原理和查字典是一樣的,假設字典包含一萬字,list查詢方法是一個一個查找,知道找到為止,dict是查這個字

python路:戶輸入(一)

老師 用法 inf 代碼 用戶輸入 display 用戶 -- class python之路:用戶輸入(一) 好了,現在我學了點博客的用法,現在不會像以前的那麽土了。好吧,不多說,我要講課了。 今天,我會用情景實例給大家說這個用戶輸入。 情景是:你是IT教育的python帶

Pythondict(或物件)與json之間的互相轉化

原文連結地址:https://blog.csdn.net/qq_33689414/article/details/78307018 Python之dict(或物件)與json之間的互相轉化 在Python語言中,json資料與dict字典以及物件之間的轉化,是必不可少的操作。 在Python

eval()函式 python eval() Python:eval的和濫用

eval()函式十分強大,官方demo解釋為:將字串str當成有效的表示式來求值並返回計算結果。 so,結合math當成一個計算器很好用。 其他用法,可以把list,tuple,dict和string相互轉化。 見下例子: a = "[[1,2], [3,4], [5,6], [7,8], [9

pythonDict和set型別

Dict就是一種key:value的表格: >>> d = { 'Adam':95, 'Lisa':85, 'Bart':59, 'Paul':75 } >>> print (d) {'Paul':

Python eval 函式

作者博文地址:https://www.cnblogs.com/liu-shuai/ eval   功能:將字串str當成有效的表示式來求值並返回計算結果。   語法: eval(source[, globals[, locals]]) -> value   引數:     source:一個Python

Pythondict(或對象)與json之間的互相轉化

aud 導入 ict ads mps dump json數據 color 語言 在Python語言中,json數據與dict字典以及對象之間的轉化,是必不可少的操作。 在Python中自帶json庫。通過import json導入。 在json模塊有2個方法, load

python戶交互

python1 用戶交互:>>> name=raw_input("Input your name:")Input your name:zwj>>> print(name)zwj如果是python3.0,關鍵字則為input本文出自 “一萬年太久,只爭朝夕” 博客,請務必保留

python 調函數

abs last lin docs trac ive get targe type Python內置了很多有用的函數,我們可以直接調用。 要調用一個函數,需要知道函數的名稱和參數,比如求絕對值的函數abs,只有一個參數。可以直接從Python的官方網站查看文檔: http:

python文件調

color clas print .py cnblogs pat div class sys test_import_file.py,在當前目錄 import sys sys.path.append("..") import hello hello.printHell

Python實戰dict簡單練習

簡單 fault zhang zha contain default san rom mat [‘__class__‘, ‘__contains__‘, ‘__delattr__‘, ‘__delitem__‘, ‘__dir__‘, ‘__doc__‘, ‘__eq__

Python路-目錄規範和不同目錄間進行模塊調

base 轉換成 arm 環境變量 規範 有環 路徑 pytho package 目錄規範: 預備知識: 要實現不同目錄間進行模塊調用必須在當前文件夾中創建一個空的__init__.py的文件(pycharm會在創建python package的時候自動創建),有

C語言在linux內核中do while(0)

pos turn jsb world div fprintf cpp efault code 為什麽說do while(0) 妙?由於它的確就是妙,並且在linux內核中實現是相當的妙,我們來看看內核中的相關代碼: #define db_error(fmt, ..