首頁 > 軟體

Python使用defaultdict解決字典預設值

2023-04-08 06:00:58

在Python中,defaultdict是一種特殊型別的字典,它可以自動為字典中不存在的鍵設定預設值。這種型別的字典是在collections模組中定義的。它為我們提供了一個更方便,更容易使用的字典。在這篇文章中,我們將深入探討Python中的defaultdict,並探討如何使用它們。

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”。

5.結論

就本節介紹Python中的defaultdict而言,這就是全部內容了。我們發現defaultdict很容易使用,而且在許多情況下都非常有用。defaultdict自動在字典中缺少某個鍵時進行設定預設值,這特別適用於複雜的資料結構和巢狀字典。由於Python中的defaultdict是一個包含有用的功能的標準庫,所以大多數Python程式設計師都對其有一定的瞭解,因此對其理解是很有必要的。

到此這篇關於Python使用defaultdict解決字典預設值的文章就介紹到這了,更多相關Python defaultdict字典預設值內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com