- Python編程基礎與應用
- 李方園主編
- 1845字
- 2021-10-27 16:38:28
2.5.2 字典的基本操作與方法
1.訪問字典
列表和元組是通過下標來訪問元素的,而字典不同,它通過鍵來訪問對應的值。因為字典中的元素是無序的,每個元素的位置都不固定,所以字典也不能像列表和元組那樣,采用切片的方式一次性訪問多個元素。
Python訪問字典元素的具體格式為:

其中,dictname表示字典變量的名字,key表示鍵名。注意,鍵必須是存在的,否則會報異常。
【例2-46】 通過鍵訪問字典。

運算結果:

除了上面這種方式外,Python也推薦使用dict類型提供的get()方法來獲取指定鍵對應的值。當指定的鍵不存在時,get()方法不會拋出異常。
get()方法的語法格式為:

其中,dictname表示字典變量的名字;key表示指定的鍵;default用于指定要查詢的鍵不存在時,此方法返回的默認值,如果不手動指定,會返回None。
【例2-47】 通過get()方法訪問字典。

運算結果:


本例中可以看到,當鍵不存在時,get()返回空值None,如果想明確地提示用戶該鍵不存在,那么可以手動設置get()的第二個參數。
2.刪除字典
和刪除列表、元組一樣,手動刪除字典也可以使用del關鍵字。
【例2-48】 通過get()方法訪問字典。

運算結果:

3.添加鍵值對
為字典添加新的鍵值對很簡單,直接給不存在的key賦值即可,具體語法格式如下:

其中,dictname表示字典名稱,key表示新的鍵,value表示新的值,只要是Python支持的數據類型都可以。
【例2-49】 添加字典鍵值對。

運算結果:

4.修改鍵值對
字典中鍵(key)的名字不能修改,只能修改值(value)。字典中各元素的鍵必須是唯一的,因此,如果新添加元素的鍵與已存在元素的鍵相同,那么鍵所對應的值就會被新的值替換掉,以此達到修改元素值的目的。
【例2-50】 添加字典鍵值對。

運算結果:

例中可以看到,字典中沒有再添加一個{'第三名': 8.13}鍵值對,而是對原有鍵值對{'第三名':7.65}中的value做了修改。
5.刪除鍵值對
如果要刪除字典中的鍵值對,還可以使用del語句。
【例2-51】 使用del語句刪除鍵值對。

運算結果:

6.判斷字典中是否存在指定鍵值對
如果要判斷字典中是否存在指定鍵值對,首先應判斷字典中是否有對應的鍵。判斷字典是否包含指定鍵值對的鍵,可以使用in或not in運算符。
需要指出的是,對于dict而言,in或not in運算符都是基于key來判斷的。
通過in(或not in)運算符,可以很輕易地判斷出現有字典中是否包含某個鍵,如果存在,由于通過鍵可以很輕易獲取對應的值,因此很容易就能判斷出字典中是否有指定的鍵值對。
【例2-52】 使用del語句刪除鍵值對。


運算結果:

7.keys()、values()和items()方法
將這3個方法放在一起介紹,是因為它們都用來獲取字典中的特定數據:
● keys()方法用于返回字典中的所有鍵(key);
● values()方法用于返回字典中所有鍵對應的值(value);
● items()方法用于返回字典中所有的鍵值對(key-value)。

2-8 獲取字典中的特定數據
【例2-53】 獲取字典中的鍵、值及鍵值對數據。

運算結果:

從例中可以發現,keys()、values()和items()返回值的類型分別為dict_keys、dict_values和dict_items,并不是常見的列表或者元組類型。如果需要列表類型等類型,則使用list()函數將它們返回的數據轉換成列表或使用for in循環遍歷它們的返回值。
【例2-54】 獲取字典中的鍵、值及鍵值對數據后返回列表類型。

運算結果:

8.copy()方法
copy()方法是返回一個字典的副本,即返回一個具有相同鍵值對的新字典。
【例2-55】 字典的copy()方法應用。

運算結果:

從運行結果不難看出,對a增加新鍵值對,b不變;而修改a的某鍵值對中列表內的元素,b也會相應改變。
9.update()方法
update()方法可以使用一個字典所包含的鍵值對來更新己有的字典。在執行update()方法時,如果被更新的字典中已包含對應的鍵值對,那么原value會被覆蓋;如果被更新的字典中不包含對應的鍵值對,則該鍵值對被添加進去。
【例2-56】 字典的update()方法應用。

運算結果:

從運行結果可以看出,由于被更新的字典中已包含key為“No.2”的鍵值對,因此更新時該鍵值對的value將被改寫;而被更新的字典中不包含key為“No.5”的鍵值對,所以更新時會為原字典增加一個新的鍵值對。
10.pop()和popitem()方法
pop()和popitem()都用來刪除字典中的鍵值對,不同的是,pop()用來刪除指定的鍵值對,而popitem()用來隨機刪除一個鍵值對,它們的語法格式如下:

其中,dictname表示字典名稱,key表示鍵。
【例2-57】 指定刪除或隨機刪除。

運算結果:

11.setdefault()方法
setdefault()方法用來返回某個key對應的value,其語法格式如下:

說明,dictname表示字典名稱,key表示鍵,defaultvalue表示默認值(可以不寫,不寫則為None)。
當指定的key不存在時,setdefault()會先為這個不存在的key設置一個默認的defaultvalue,然后再返回defaultvalue。也就是說,setdefault()方法總能返回指定key對應的value。
1)如果該key存在,那么直接返回該key對應的value;
2)如果該key不存在,那么先為該key設置默認的defaultvalue,然后再返回該key對應的defaultvalue。
【例2-58】 指定刪除或隨機刪除。

運算結果:

從例中可以看出,key為“'石化'”存在時,直接返回該key對應的value,即0.7,而不會更改為setdefault()方法中的0.68。
- Learning Docker
- Magento 2 Development Cookbook
- Mastering LibGDX Game Development
- C程序設計案例教程
- GeoServer Beginner's Guide(Second Edition)
- Unity 2017 Mobile Game Development
- Python機器學習算法: 原理、實現與案例
- iOS自動化測試實戰:基于Appium、Python與Pytest
- 零基礎學Kotlin之Android項目開發實戰
- 深入剖析Java虛擬機:源碼剖析與實例詳解(基礎卷)
- Node學習指南(第2版)
- 軟件項目管理實用教程
- Image Processing with ImageJ
- 實戰Java高并發程序設計(第2版)
- R Data Science Essentials