iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0
Modern Web

30Day啟動!!系列 第 7

Day07-defaultdict

  • 分享至 

  • xImage
  •  

Python defaultdict:字典的增強版

Python defaultdict 是 collections 模組中的一個功能豐富的字典變體。它解決了在訪問字典中不存在的鍵時引發的KeyError異常問題,並提供了一種方式來處理缺失鍵。

基本介紹
要使用defaultdict,首先需要導入collections模組:

from collections import defaultdict

接下來,您可以創建一個defaultdict物件,並指定一個預設工廠函數(default factory function)。該預設工廠函數將決定當您訪問不存在的鍵時返回什麼值。

舉例:創建一個defaultdict,預設值為int類型的0
default_dict = defaultdict(int)
count = default_dict['non_existent_key'] # 返回0,而不是引發KeyError

現在,當您嘗試訪問不存在的鍵時,它會返回預設值,而不會引發異常:

更多應用:
defaultdict的預設工廠函數也可以是其他內建資料型別,例如list、set或lambda函數等,以實現更複雜的用途。


from collections import defaultdict

# 使用list作為預設工廠函數,創建一個defaultdict
default_dict = defaultdict(list)

# 添加元素到defaultdict
default_dict['fruits'].append('apple')
default_dict['fruits'].append('banana')
default_dict['fruits'].append('orange')

print(default_dict['fruits'])  # 輸出: ['apple', 'banana', 'orange']

# 使用set作為預設工廠函數,創建一個defaultdict
default_dict = defaultdict(set)

# 添加元素到defaultdict
default_dict['colors'].add('red')
default_dict['colors'].add('green')
default_dict['colors'].add('blue')

print(default_dict['colors'])  # 輸出: {'blue', 'green', 'red'}

總結:
Python defaultdict 是一個強大的工具,可幫助您更有效地處理字典中的缺失鍵,並提供了更多彈性的方式來處理數據。不僅它簡化了程式碼,還能提高程式的可讀性。

參考資料:https://docs.python.org/3/library/collections.html#collections.defaultdict


上一篇
Day 06-條件表達式
下一篇
Day08-錯誤與異常
系列文
30Day啟動!!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言