Python基礎總結之第十天開始【認識一下python的另一個數據對象—–字典】(新手可相互督促)

  • 2019 年 10 月 3 日
  • 筆記

       看了大家的評論,還是有意外的收貨。感謝每個小夥伴的評論與補充。

眾人拾柴火焰高~

        今天的筆記是記錄python中的數據對象—-字典!

前面有講到list列表和tuple元組的筆記,他們都是一樣可以用來儲存對象。list列表是支援讀寫修改,tuple元組之支援讀取,不可修改。但是他們有共同的特點,將單個的元素值,存儲在列表或元組中,然後通過索引(元素下標)的方式去找到對應的元素,進行操作。

       那麼dictionaryt字典呢?它是什麼數據結構?

字典這種數據結構被稱為映射。字典中的值(value)沒有特殊的順序,但是這些值都存儲在一個特定的鍵(key)下。我們可以通過鍵(key)找到對應的值。鍵(key)可以是數字、字元串或元組等。

     就這麼理解,和新華字典一樣,通過拼音去找對應的字。~~~~就是這麼個映射的意思。不要太較真。

我們先看下創建一個空字典:

1 dict_1 = {}     #這就是一個空字典{},用變數dict_1指向他.

我們在創建一個有數據的字典: 下面的19,是數字對象。加引號就是字元串對象。具體加不加看你自己的用途,字典都是支援的~~~~

1 dict_1 = {'name':'Xiao Hong','age':19,'iphone':'110'}    #創建第一個字典類型的數據  2  3  4 dict_2 = {'Xiao Hong':{'name':'Xiao Hong','age':19,'iphone':'110'},    #創建第二個字典類型的數據,還可以這樣創建哦  5           'Xiao Jun':{'name':'Xiao Jun','age':16,'iphone':'117'}}

        我們發現:創建的第二個字典,它的鍵(key),對應的值(value)是另一個字典類。其實,字典對象的鍵(key)也是支援很多對象類型的,

最常用的就是數字和字元串類型作為鍵(key),因為查找對象的效率是最高的。

        我相信你已經會根據以上結構去創建字典這樣的映射結構了。接下來我們再創建一個新的字典,對它進行添加、修改、刪除的操作。

為空字典,添加對象:

1 dict_1 = {}   #創建一個空字典  2  3 dict_1['name'] = 'Xiao'     #變數名【鍵】 = 【值】,直接賦值的方式添加對象  4 dict_1[1.34] = 'abc'  5 dict_1[100] = 'holle word'  6  7 print(dict_1)  #查看添加對象的效果

 

1 dict_1 = {}   #創建一個空字典  2  3 dict_1['name'] = 'Xiao'     #變數名【鍵】 = 【值】,直接賦值的方式添加對象  4 dict_1[1.34] = 'abc'  5 print(dict_1)               #查看添加對象的效果  6  7 dict_1['name'] = 'hhh'      #將'name': ['Xiao']  改為:'name': ['hhh']  8 print(dict_1)               #查看修改後對象的效果,做對比

        我們看到了添加和修改,我要搞清楚一個概念,如果在我們賦值操作的時候,鍵(key)在字典中是不存在的,呢么就是添加對象;如果在我們賦值的時候,鍵(key)是本身字典就有同名的鍵(key),那就是修改。

如果說我們添加的時候不知道裡面有沒有同名的鍵(key),我們可以這樣檢查一下鍵(key)是不是在字典中已經存在:

1 dict_1 = {'name':'Xiao Hong','age':19,'iphone':'110'}  2  3 print('name' in dict_1)   #要查詢的格式    鍵 in關鍵字 字典對象(變數名)  4 print('hhh' in dict_1)    #返回True就是存在,返回的False則是不存在

 

 當然也可以使用這個方法:

has_key()     可以檢查當前字典中鍵是否存在,但是!!!python3中沒有這個方法啦,所以不再舉例了,用第一種 in關鍵字就好了.。

 

我們再看下刪除字典中的一個元素,程式碼怎麼實現:

1 dict_1 = {'name':'Xiao Hong','age':19,'iphone':'110'}  2 print(dict_1)         #刪除之前  3  4 del dict_1['age']    #del關鍵字  5 print(dict_1)        #刪除之後

也可以這樣刪除字典中的元素:

1 dict_1 = {'name':'Xiao Hong','age':19,'iphone':'110'}  2 print(dict_1)         #刪除之前  3  4 a = dict_1.pop('name')    #pop()方法,刪除字典元素的時候,將鍵對應的值返回給了變數。  5 print(dict_1)             #刪除之後  6 print(a)                  #我們看下變數a有沒有指向刪除的值 'Xiao Hong'

我看的pop()方法,刪除字典元素的時候,將鍵對應的值返回給了變數。

 

有時候我們會遍歷字典中的鍵:

使用 keys() 方法:

1 dict_1 = {'name':'Xiao Hong',  2           'age':'19',  3           'iphone':'110'}            #我們創建的字典對象  4  5 for key in dict_1.keys():         #遍歷字典中的鍵key  6     print(key,end= ' ')    # end=' '意思是末尾不換行,加空格。

 

 

同樣的,我們也可以遍歷字典中的所有值:

使用values()  方法:

1 dict_1 = {'name':'Xiao Hong',  2           'age':'19',  3           'iphone':'110'}            #我們創建的字典對象  4  5 for value in dict_1.values():         #遍歷字典中的值value  6     print(value,end= ' ')    # end=' '意思是末尾不換行,加空格。

 

 有時候我們會同時遍歷字典中的鍵和值,這個需要用到字典中的items() 方法:

 items() 方法:  它可以同時獲取key和value  我們看下程式碼的實現:

1 dict_1 = {'name':'Xiao Hong',  2           'age':'19',  3           'iphone':'110'}            #我們創建的字典對象  4  5 for key,value in dict_1.items():   #用 items()函數,同時遍歷鍵和值  6     print(key,value,end= '')              #列印鍵和值,end=' '意思是末尾不換行,加空格。

 

 
1 dict_1 = {'name':'Xiao Hong',  2           'age':'19',  3           'iphone':'110'}            #我們創建的字典對象  4  5 print(dict_1.get('name'))    #我們可以使用get()方法獲取字典的值

 

字典的合併,就是將兩個字典合併在一起

update()   需要注意的是:如果被合併的字典中包含已經存在的鍵值對,會覆蓋原有的鍵值對。

 1 dict_1 = {'name_1':'Xiao Hong',   2           'age':'19',   3           'iphone':'110'}            #第一個字典   4   5 print(dict_1)                        #合併之前   6 dict_2 = {'name_2':'Xiao JUN',   7           'age':'19',   8           'iphone':'110'}            #第二個字典   9  10 dict_1.update(dict_2)               #將dict_2合併在dict_1字典中。  11 print(dict_1)                        #合併之後的dict_1字典,注意重複的鍵值對會被覆蓋掉

 

 清空字典用clear() 方法:

1 dict_1 = {'name_1':'Xiao Hong',  2           'age':'19',  3           'iphone':'110'}            #創建一個字典  4  5 print(dict_1)                        #清空之前  6 print(dict_1.clear())                #清空並列印結果

 

字典還有很多方法,後面的筆記,遇見不同的場景,處理字典的時候我們在詳細分析記錄。