1. 程式人生 > >7-Python3從入門到實戰—基礎之數據類型(字典-Dictionary)

7-Python3從入門到實戰—基礎之數據類型(字典-Dictionary)

from ref 不存在 gpo http 必須 ems href int

Python從入門到實戰系列——目錄

字典的定義

  • 字典是另一種可變容器模型,且可存儲任意類型對象;使用鍵-值(key-value)存儲,具有極快的查找速度;
    字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中

    語法格式:{ key1 : value1, key2 : value2, key3 : value3 ...}
    users={‘ 張三 ‘ : 18 , ‘ 李四 ‘ : 19 , ‘ 王五 ‘ : 20 , ‘ 趙六 ‘ : 19}
  • 字典的鍵必須是唯一的,並且值的數據類型是不可變的,但值可以使任意的或者重復的;

    # 編號作為鍵,鍵唯一,值可變
    users={ 1 :‘ 張三 ‘  , 2 :‘ 李四 ‘ , 3 :‘ 王五 ‘  , 4 :‘ 張三 ‘ }

訪問字典裏的值

  • 訪問字典中的值使用 dict[鍵]

    dict = {‘name‘ : ‘ SiberiaDante ‘ , ‘ age ‘ : 18  , ‘ address‘ : ‘ China ‘}
    print(dict[‘name‘]  # 結果 :SiberiaDante

修改字典

  • 根據字典中的鍵修改字典中的值

    dict = {‘name‘ : ‘ SiberiaDante ‘ , ‘ age ‘ : 18  , ‘ address‘ : ‘ China ‘}
    print(dict[‘age‘])  # 輸出:18
    dict [ ‘ age ‘ ] = 20
    print(dict[‘age‘])  # 輸出: 20
  • 向已有的字典中增加鍵值對

    dict = {‘name‘ : ‘SiberiaDante‘ , ‘age‘ : 18  , ‘address‘ : ‘China‘}
    print(dict) # 結果 :{‘name‘: ‘SiberiaDante‘, ‘age‘: 18, ‘address‘: ‘China‘}
    dict[‘language‘]=‘Python‘
    print(dict) # 結果 : {‘name‘: ‘SiberiaDante‘, ‘age‘: 18, ‘address‘: ‘China‘,‘language‘:‘Python‘}

刪除字典

  • 刪除字典中的單個元素:dict[key]

    dict = {‘name‘ : ‘SiberiaDante‘ , ‘age‘ : 18  , ‘address‘ : ‘China‘}
    print(dict) # 結果 : {‘name‘: ‘SiberiaDante‘, ‘age‘: 18, ‘address‘: ‘China‘}
    del dict[‘name‘]
    print(dict) # 結果 : { ‘age‘: 18, ‘address‘: ‘China‘}
  • 刪除一個字典: del dict

    dict = {‘name‘ : ‘SiberiaDante‘ , ‘age‘ : 18  , ‘address‘ : ‘China‘}
    del dict
  • 清空字典:dict.clear()

       dict = {‘name‘ : ‘SiberiaDante‘ , ‘age‘ : 18  , ‘address‘ : ‘China‘}
       print(dict) # 結果 : {‘name‘: ‘SiberiaDante‘, ‘age‘: 18, ‘address‘: ‘China‘}
       dict.clear() 
       print(dict)  # 結果:{}

    字典內置函數&方法

  • 函數

    len(dict)   計算字典元素個數,即鍵的總數。 
    str(dict)   輸出字典,以可打印的字符串表示。    
    type(variable)  返回輸入的變量類型,如果變量是字典就返回字典類型。
  • 方法

    dict.clear() 刪除字典內所有元素
    dict.copy()  返回一個字典的淺復制
    dict.fromkeys()  創建一個新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對應的初始值
    dict.get(key, default=None)  返回指定鍵的值,如果值不在字典中返回default值
    key in dict 如果鍵在字典dict裏返回true,否則返回false
    dict.items() 以列表返回可遍歷的(鍵, 值) 元組數組
    dict.keys()  以列表返回一個字典所有的鍵
    dict.setdefault(key, default=None)   和get()類似, 但如果鍵不存在於字典中,將會添加鍵並將值設為default
    dict.update(dict2)   把字典dict2的鍵/值對更新到dict裏
    dict.values()    以列表返回字典中的所有值
    pop(key[,default])  刪除字典給定鍵 key 所對應的值,返回值為被刪除的值。key值必須給出。 否則,返回default值。
    popitem()   隨機返回並刪除字典中的一對鍵和值(一般刪除末尾對)。

字典和列表對比

  • 和list比較,dict有以下幾個特點:
    • 查找和插入的速度極快,不會隨著key的增加而變慢;
      *需要占用大量的內存,內存浪費多;
  • 和dictionary相比,list的特性:
    • 查找和插入的時間隨著元素的增加而增加;
    • 占用空間小,浪費內存很少;

7-Python3從入門到實戰—基礎之數據類型(字典-Dictionary)