官术网_书友最值得收藏!

4.5 字典類型

微視頻

與列表和元組有所不同,字典是另一種可變容器模型,且可存儲任意類型的對象。本節講述字典的基本操作。

4.5.1 認識字典類型

字典(Dictionary)是Python內非常有用的數據類型。字典使用大括號({})將元素列出。元素由鍵值(key)與數值(value)組成,中間以冒號(:)隔開。鍵值必須是字符串、數字或元組,這些對象是不可變動的;數值則可以是任何數據類型。字典的元素排列沒有一定的順序,因為可以使用鍵值來取得該元素。

創建字典的語法格式如下:

    字典變量={關鍵字1:值1,關鍵字2:值2,…}

大牛提醒

在同一個字典之內,關鍵字必須互不相同。創建字典并訪問字典中的元素。

    >>>x={'一班': '張小明','二班': '李萌','三班': '張小明'}
    >>>x ['一班']
    '張小明'
    >>>x ['二班']
    '李萌'
    >>>x ['三班']
    '張小明'

從結果可以看出,字典中的關鍵字必須唯一,但是關鍵字對應的值可以相同。

大牛提醒

在獲取字典中的元素值時,必須保證輸入的鍵值在字典中是存在的,否則Python會產生一個KeyError錯誤。

4.5.2 字典的常用操作

字典的常用操作如下:

1.修改字典中的元素值

字典中的元素值是可以修改的。例如:

    >>>x={'一班': '張小明','二班': '李萌','三班': '張小明'}
    >>>x['三班'] = '張昌隆'
    >>>x
    {'一班': '張小明', '二班': '李萌', '三班': '張昌隆'}
2.刪除字典中的元素

使用del語句可以刪除字典中的元素。例如:

    >>>x = {'一班': '張小明', '二班': '李萌', '三班': '張昌隆'}
    >>>del x["三班"]
    >>>x
    {'一班': '張小明', '二班': '李萌'}
3.定義字典鍵值時需要注意的問題

字典鍵值是不能隨便定義的,需要注意以下兩點:

(1)不允許同一個鍵值多次出現。創建時如果同一個鍵值被賦值多次,那么只有最后一個值有效,前面重復的值將會被自動刪除。例如:

    >>>x = {'一班': '張小明', '二班': '李萌', '一班': '張昌隆', '二班': '王明霞'}
    >>>x
    {'一班': '張昌隆', '二班': '王明霞'}

(2)因為字典鍵值必須不可變,所以可以用數字、字符串或元組充當,列表則不行。如果用列表做鍵值,將會報錯。例如:

    >>>x = {["名稱"]:"冰箱", "產地":"北京", "價格":"6500"}
    Traceback (most recent call last):
      File "<pyshell#33>", line 1, in <module>
        x = {["名稱"]:"冰箱", "產地":"北京", "價格":"6500"}
    TypeError: unhashable type: 'list'

4.5.3 字典的內置函數和方法

本節主要講述字典的內置函數和方法。

1.字典的內置函數

字典的內置函數包括len()、str()和type()。

(1)len(dict):計算字典元素個數,即鍵值的總數。例如:

    >>>x = {'一班': '張昌隆', '二班': '王明霞'}
    >>>len(x)
    2

(2)str(dict):將字典的元素轉換為可打印的字符串形式。例如:

    >>>x = {'一班': '張昌隆', '二班': '王明霞'}
    >>>str(x)
    "{'一班': '張昌隆', '二班': '王明霞'}"

(3)type(variable):返回輸入的變量類型,如果變量是字典,就返回字典類型。例如:

    >>>x = {'一班': '張昌隆', '二班': '王明霞'}
    >>>type(x)
    <class 'dict'>
2.字典的內置方法

字典對象有許多內置方法,在Python解釋器內輸入dir({}),就可以顯示這些內置方法的名稱。下面挑選常用的方法進行講解。

(1)clear():清除字典中的所有元素。例如:

    >>>x = {'一班': '張昌隆', '二班': '王明霞'}
    >>>x.clear()
    >>>x
    {}

(2)copy():復制字典。例如:

    >>>x = {'一班': '張昌隆', '二班': '王明霞'}
    >>>y = x.copy()
    >>>y
    {'一班': '張昌隆', '二班': '王明霞'}

(3)get(k [, d]):k是字典的索引值,d是索引值的默認值。如果k存在,就返回其值,否則返回d。例如:

    >>>x = {'一班': '張昌隆', '二班': '王明霞'}
    >>> x.get("一班")
    '張昌隆'
    >>> x.get("三班","不存在")
    '不存在'

(4)items():使用字典中的元素創建一個由元組對象組成的列表。例如:

    >>>x = {'一班': '張昌隆', '二班': '王明霞'}
    >>>x.items()
    dict_items([('一班', '張昌隆'), ('二班', '王明霞')])

(5)keys():使用字典中的鍵值創建一個列表對象。例如:

    >>>x = {"名稱":"西瓜", "產地":"吐魯番", "價格":"6.26"}
    >>>x.keys()
    dict_keys(['名稱', '產地', '價格'])

(6)popitem():刪除字典中的最后一個元素。例如:

    >>>x = {"名稱":"西瓜", "產地":"吐魯番", "價格":"6.26"}
    >>> x.popitem()
    ('價格', '6.26')
    >>> x
    {'名稱': '西瓜', '產地': '吐魯番'}
    >>>x.popitem()
    ('產地', '吐魯番')
    >>> x
    {'名稱': '西瓜'}

【例4.4】制作火車票查詢系統(源代碼\ch04\4.4.py)。

這里模擬火車票查詢系統,輸入車次編號,輸出本次列車的出發站和終點站。

    aa=["G15","C2065","Z95","G565"]             #定義鍵的列表
    bb=["北京南—上海","北京南—天津","北京西—重慶北","北京西—鄭州東"]#定義值的列表
    cc=dict(zip(aa,bb))                         #轉換為字典
    print ("歡迎進入火車票查詢系統")
    print (cc)
    n=input("請輸入需要查詢的車次:")
    print (n+"次車的出發站和終點站是:",cc.get(n))

程序運行結果如圖4-4所示。

圖4-4 例4.4的程序運行結果

主站蜘蛛池模板: 锦屏县| 合作市| 阿鲁科尔沁旗| 大庆市| 太谷县| 辽阳市| 天台县| 长海县| 岫岩| 同德县| 祥云县| 北海市| 金乡县| 东山县| 社会| 绥中县| 肃北| 南部县| 台州市| 白水县| 莱西市| 小金县| 磴口县| 济源市| 潞西市| 康保县| 枞阳县| 鲁甸县| 商洛市| 清河县| 普格县| 赤峰市| 揭阳市| 兰州市| 宣武区| 台山市| 米易县| 衡东县| 淳化县| 万荣县| 杭锦后旗|