預設值字典在Python中的應用及如何使用defaultdict

王林
發布: 2023-04-23 11:52:07
轉載
1233 人瀏覽過

在Python中,defaultdict是一種特殊類型的字典,它可以自動為字典中不存在的鍵設定預設值。這種類型的字典是在collections模組中定義的。它為我們提供了一個更方便,更容易使用的字典。

1.導入defaultdict

我們需要先導入包含defaultdict的collections模組。可以透過在Python程式碼的頂部加入以下程式碼行來實現這一點:

from collections import defaultdict
登入後複製

2.創建defaultdict

創建defaultdict的方法在語法上與創建Python字典是相同的。我們只需要將defaultdict的型別當作建構函式的參數。例如,如果我們要建立一個儲存整數的defaultdict,我們可以使用以下程式碼:

int_dict = defaultdict(int)
登入後複製

如果我們要在defaultdict中儲存字串,可以使用以下程式碼:

str_dict = defaultdict(str)
登入後複製

在這兩種情況下,我們都透過向defaultdict建構函式傳遞類型來定義了一個新的defaultdict實例。這個類型對於defaultdict的所有鍵都將設定為對應的預設值。

3.使用defaultdict

當試圖存取defaultdict的鍵時,如果該鍵不存在,則會自動設定與傳遞給建構函數的類型對應的預設值。例如,在下面的程式碼中,我們使用defaultdict儲存一個人的年齡,並將預設值設為0:

age_dict = defaultdict(int)
age_dict['alice'] = 25
age_dict['bob'] = 30
age_dict['charlie']
print(age_dict)
登入後複製

輸出將是{‘alice’: 25, ‘bob’: 30, ‘charlie’: 0} ,當‘charlie’ 還沒有在default 字典中時,自動用預設值0 進行填入。

在這個例子中,我們為預設字典添加了兩個鍵, ‘alice’ 和 ‘bob’ ,並直接查詢了另一個鍵 ‘charlie’ ,這個鍵不在字典中。由於 ‘charlie’ 不存在於字典中,defaultdict會自動地將該鍵對應的值設定為位於建構函式中傳遞的對應類型的預設值(在這種情況下是整數0)。我們可以看到,這確實是我們預期的結果。

4.新增defaultdict預設值

我們也可以透過為defaultdict函數提供一個函數作為預設值來定義一個預設值。這個函數將在字典中缺少某個鍵的情況下調用,並返回所需的預設值。例如,我們可以使用以下程式碼定義一個函數,該函數以字典中的鍵作為其預設值:

def return_key():
    return "unknown"

key_dict = defaultdict(return_key)
key_dict['apple'] = 'fruit'
print(key_dict['pear'])
print(key_dict['banana'])
登入後複製

#輸出將是:

unknown
unknown

在這個範例中,我們定義了一個函數return_key() ,它簡單地回傳「unknown」 。然後我們建立了一個 default 字典,並使用這個函數作為預設值來定義它。當我們嘗試存取 “pear” 和 “banana” 這兩個按鍵時,我們得到了 “unknown” 這個預設值。但是,當我們在字典中加入了鍵 “apple” 時,我們得到了 “fruit”。

以上是預設值字典在Python中的應用及如何使用defaultdict的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板