前面我們學習了Python的清單和元組,如果你用心的學習了前面的內容並透過相關習題進行了一定的訓練,那麼接下來的學習會水到渠成。在Python中我們一定要明白一點,Python是一種解釋型語言,因此它會提供很多人性化的工具給我們使用,接下來的幾節我們來學習一個新的資料類型-字典。
字典和列表和元組不同,字典中儲存的是一組數據,也就是說字典中的每個數據都包含了兩個部分,大家可以這麼理解,字典中存放了一個學生名字,每個學生的名字前面都對應了一個學號,我們可以把學號理解為'鍵',姓名理解為'值'。
以下介紹幾點字典的特性:
1)字典是沒有順序的,是任意物件的無序集合。
2)字典的鍵是唯一的,不能多次出現,多次出現時取最後一個值。
3)鍵是不可變的。
4)字典中的元素可增刪。
5)因為沒有順序,所以不存在索引。
透過學生姓名那個例子,已經提到字典每個元素包含2個部分,他們分別是'鍵'和'值',鍵和值之間用' : '隔開,兩個元素之間用' , '隔開。
它的語法形式為:
my_dict={'key':'value','key1'='value1'....}
其中my_dict 為我們要建立的字典,key為鍵,value為鍵對應的值,他們可以是任何數字類型。
創建空字典的方式為:
>>>my_dict={}#直接進行建立>>>my_dict{}>>>type(my_dict)#看一下它的型別<class'dict'>
我們來創建一個字典,字典裡有5個學號分別為1001,1002,1003,1004,1005,每個學號對應的名字為'李華','張三','小雪','小張','小明'。
>>>my_dict={1001:'李華',1002:'張三',1003:'小雪',1004:'小張',1005:'小明'}>>>my_di ct#互動模式下輸人名字是直接存取輸出{1001:'李華',1002:'張三',1003:'小雪',1004:'小張',1005:'小明'}
字典的形式大致就是這樣,每個元素對應兩個部分,前面的為'鍵',後面的為'值'。
要注意鍵是不可以修改的,而值是可以變的,因此鍵要取不可變類型的資料。
在字典中存取元素一般是透過存取其鍵的形式來取得它對應的值。
我們繼續使用上面創建的字典,我們進行訪問其值:
>>>my_dict={1001:'李華',1002:'張三',1003:'小雪',1004:'小張',1005:'小明'}>>>my_dict[1001]#訪問鍵為1 001的值'李華'>>>my_dict[1005]#存取鍵為1005的值'小明'>>>my_dict[1006]#存取鍵為1006的值,此時字典裡沒有1006,故報錯誤。 Traceback(mostrecentcalllast):File<stdin>,line1,in<module>KeyError:1006
在上面我們了解到當我們存取一個不存在的鍵的時候會出現錯誤,我們可以採用一種判斷來判別字典中是否存在對應的鍵。
判斷是否存再我們使用的是in和not in 。
使用in:
>>>my_dict={1001:'李華',1002:'張三',1003:'小雪',1004:'小張',1005:'小明'}>>>if1001inmy_dict:#如果my_dict中存在1001這個鍵就執行下面語句print(my_dict[1001])>>>李華
使用not in:
>>>my_dict={1001:'李華',1002:'張三',1003:'小雪',1004:'小張',1005:'小明'}>>>if1006notinmy_dict:#如果my_dict中吧存在1006這個鍵就執行下語句print('不存在1006這個鍵')>>>不存在1006這個鍵
簡單的使用in和not in 可以確保我們在訪問的時候減少錯誤的發生,需要注意在in和not in操作的時候,字串的比較需要區分大小寫。
因為字典是可變的,所以我們可以進行增加刪除和修改等操作。對應的語法形式分別為:
my_dict['newkey']='newvalue'>>>my_dict={1001:'李華',1002:'張三',1003:'小雪',1004:'小張',1005:'小明'}> >>my_dic t[1006]='小李'#增加鍵1006,對應值'小李'>>>my_dict{1001:'李華',1002:'張三',1003:'小雪',1004:'小張',1005:'小明',1006:'小李'}
增加元素就是直接透過鍵值對進行添加。
刪除元素我們還是透過del語句進行刪除,刪除的是一整對元素,也就是包含鍵和值。
語法格式:
delmy_list['key']
>>>my_dict{1001:'李華',1002:'張三',1003:'小雪',1004:'小張',1005:'小明',1006:'小李'}>>>delmy_dict[ 1001]#刪除鍵為1001的一組元素>>>delmy_dict[1002]#刪除鍵為1002的一組元素>>>my_dict{1003:'小雪',1004:'小張',1005:'小明',1006:'小李'}
修改元素就等於直接覆蓋了現有元素,它的形式和添加元素的格式類似,
格式為:
my_dict['key']='newvalue'>>>my_dict{1003:'小雪',1004:'小張',1005:'小明',1006:'小李'}>>>my_ dict[1003]='小天'#把鍵1003的值修改為'小天'>>>my_dict{1003:'小天',1004:'小張',1005:'小明',1006:'小李'}
這節我們先了解字典的基礎操作,下一節來學習一些字典的相關方法。