處理 Python 字典中缺失的鍵
在 Python 中,有一種容器稱為字典。在字典中,我們可以將鍵對映到其值。使用字典,可以以常數時間訪問值。但是,當給定的鍵不存在時,可能會發生一些錯誤。
在本節中,我們將瞭解如何處理此類錯誤。如果我們嘗試訪問缺失的鍵,它可能會返回如下錯誤。
示例程式碼
country_dict = {'India' : 'IN', 'Australia' : 'AU', 'Brazil' : 'BR'}
print(country_dict['Australia'])
print(country_dict['Canada']) # This will return error
輸出
AU
---------------------------------------------------------------------------
KeyErrorTraceback (most recent call last)
<ipython-input-2-a91092e7ee85> in <module>()
2
3 print(country_dict['Australia'])
----> 4 print(country_dict['Canada'])# This will return error
KeyError: 'Canada'
使用 get() 方法處理 KeyError
我們可以使用 get 方法來檢查鍵。此方法接受兩個引數。第一個是鍵,第二個是預設值。當找到鍵時,它將返回與該鍵關聯的值,但是當鍵不存在時,它將返回預設值,該值作為第二個引數傳遞。
示例程式碼
country_dict = {'India' : 'IN', 'Australia' : 'AU', 'Brazil' : 'BR'}
print(country_dict.get('Australia', 'Not Found'))
print(country_dict.get('Canada', 'Not Found'))
輸出
AU Not Found
使用 setdefault() 方法處理 KeyError
此 setdefault() 方法類似於 get() 方法。它也像 get() 一樣接受兩個引數。第一個是鍵,第二個是預設值。此方法的唯一區別是,當存在缺失的鍵時,它將使用預設值新增新的鍵。
示例程式碼
country_dict = {'India' : 'IN', 'Australia' : 'AU', 'Brazil' : 'BR'}
country_dict.setdefault('Canada', 'Not Present') #Set a default value for Canada
print(country_dict['Australia'])
print(country_dict['Canada'])
輸出
AU Not Present
使用 defaultdict
defaultdict 是一種容器。它位於 Python 的 collections 模組中。defaultdict 以預設工廠作為其引數。最初,預設工廠設定為 0(整數)。當鍵不存在時,它返回預設工廠的值。
我們不需要一遍遍地指定方法,因此它為字典物件提供了更快速的方法。
示例程式碼
import collections as col #set the default factory with the string 'key not present' country_dict = col.defaultdict(lambda: 'Key Not Present') country_dict['India'] = 'IN' country_dict['Australia'] = 'AU' country_dict['Brazil'] = 'BR' print(country_dict['Australia']) print(country_dict['Canada'])
輸出
AU Key Not Present
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP