知識回顧:
「小白學Python」Python列表基礎:它包羅萬象,卻動若脫兔
「小白學Python」Python列表進階:6函數 9方法 列表隨心用
字典(dictionary),我們能聯想到什麼?一本厚厚的辭海?還是一本牛津字典?不論想到什麼字典,使用字典的方法都差不多,那就是①找到單詞的頁碼②找到對應內容。Python中的字典也是一樣,字典中的對象不是單個單元素,而是一個鍵值對,包括了頁碼和內容。
字典的作用
你可能會問,我們用列表的索引不就解決問題了嗎,為啥要費勁在弄個鍵值對呢。試想一下,如果有一個人的信息列表:
["小明","30","183","75"] 分別代表名字、年齡、身高、體重。
現在我們想要得到他的身高,我們就得去列表裡找他的身高的索引。問題是我們也不知道哪個數字代表身高啊,萬一身高是75釐米呢?
這時候,如果能給這些數據加上一個關鍵字Keyword就好辦多了,就好像:
{"姓名":"小明","年齡":30, "身高":183, "體重":75}
現在我們再想找他的身高,只需要根據關鍵字就能找到身高的數值了。這就是字典的作用。
創建字典
在剛才的例子中其實已經展示了字典的創建方法。
就是用一個大括號{}括起來,鍵和值之間用冒號:隔開,而鍵值對之間用逗號,隔開。
例如:
dict_name = {"姓名" : "張飛", "國籍" : "蜀國", "身高" : "185", "愛好" : "喝酒"}
這樣就創建了一個dict_name字典,字典裡面有4個鍵值對。
訪問字典
如何訪問字典呢?原來常用的通過索引訪問的方法還能行得通麼?顯然不行了。
我們用字典就是因為他有關鍵字,方便查找。用關鍵字來訪問內容才是正路。
訪問字典的兩種方法:
1、dict['Keywords'] 返回Keywords指向的值。
如果字典裡沒有這個關鍵字,系統就會報錯。
2、使用dict.get(Keywords, value)
這個方法與第一個一樣,也是訪問Keywords的值,不過如果沒找到,不會報錯,而是默認返回None,或者返回指定值。
字典的增刪改
1、向字典裡增加內容,同樣要增加一對鍵值。
2、使用dict.fromkeys(seq, value)將一個列表List、元祖Tuple、字符串Str其中的元素,作為字典的Key,初始值如果不設定,默認為None。
3、複製一個新的字典。
如果用賦值的方式,則和列表一樣,是一個"假"字典,原字典變化時,新字典也會跟著改變。
一個全新的,獨立自主的字典,需要使用dict.copy( )方法。
4、修改字典內的鍵值對
字典只能夠修改key對應的值,而不能修改key值!修改方法直接賦值即可。
5、字典的刪除操作
第一種 刪除一個鍵值對,使用del指令。只需要刪除鍵,就把這個鍵值對刪除了。
例如:張飛愛喝酒,劉備給他約法三章,嚴禁喝酒,於是……
第二種 清空字典,這裡需要用到 .clear( ) 方法
例如:阿鬥本來是有數據的,被劉備摔傻了,腦子裡啥都沒有了。
但是阿鬥還活著,只是腦子裡的東西沒了。也就是說用.clear( )方法,字典還存在,只是內容被清空了。
第三種 刪除整個字典,還是用del指令。這次刪除的是整個字典,不需要指定字典的鍵。
例如:鞠躬盡瘁的諸葛亮病死五丈原。
諸葛亮死後(del之後),這個字典就永久消失了,不能夠再次訪問。
第四種 popitem( ) 刪除字典裡最後一個鍵值對。pop(key, defalt) 刪除字典裡key對應的值,並將這個值返回。
字典的迭代函數
有時候為了方便對字典進行操作,我們需要把字典編程列表。將字典編程列表需要用到迭代器,字典帶有三個重要的迭代器:.items( ) .keys( ) .values( )。
1、items( )的用法
用兩個參數(i, j)來遍歷字典,順序是 第一個key,第一個key的值,第二個key,第二個key的值……
2、key( )的用法
先用key( )將字典裡的key全部提取出來,再用list( )轉化為列表。
3、value( )的用法
將字典裡的值取出來,並用list( )函數轉化為列表。
字典的用途很廣泛,知識點也比較多,還需要多時間和操作,才能牢固掌握。
往期知識:
「小白學Python」Python元祖:不改變是我最大的特點
「小白學Python」Windows系統下Python的安裝