iT邦幫忙

1

Python模組: defaultdict

  • 分享至 

  • xImage
  •  

defaultdict 是 Python 中 collections 模組提供的一種字典類型,
它是 dict 的子類,專門用來處理缺失鍵的情況。
與普通字典相比,defaultdict 的主要特點是當你訪問一個不存在的鍵時,
它會自動為該鍵創建一個預設值,而不會引發 KeyError。

主要特點

自動創建缺失鍵: 當你訪問一個不存在的鍵時,defaultdict 會自動使用你指定的工廠函數(如 list, int, str 等)來創建該鍵的值。
可設置的預設值: 在創建 defaultdict 時,你可以指定一個工廠函數,這個函數會被調用以生成缺失鍵的預設值。

from collections import defaultdict

# 創建一個 defaultdict,預設值為空列表
dd_list = defaultdict(list)

# 對於不存在的鍵,自動創建一個空列表並添加元素
dd_list['fruits'].append('apple')
dd_list['fruits'].append('banana')

print(dd_list)  # 輸出: defaultdict(<class 'list'>, {'fruits': ['apple', 'banana']})

# 創建一個 defaultdict,預設值為整數(0)
dd_int = defaultdict(int)

# 對於不存在的鍵,自動創建並初始化為0
dd_int['a'] += 1
dd_int['b'] += 2

print(dd_int)  # 輸出: defaultdict(<class 'int'>, {'a': 1, 'b': 2})

你可以使用不同的工廠函數來定義預設值:

  • 使用 list:
dd = defaultdict(list)
dd['key'].append(1)
print(dd)  # 輸出: defaultdict(<class 'list'>, {'key': [1]})

  • 使用 int:
dd = defaultdict(int)
dd['count'] += 1
print(dd)  # 輸出: defaultdict(<class 'int'>, {'count': 1})

  • 使用自定義函數:
def custom_default():
    return "default_value"

dd = defaultdict(custom_default)
print(dd['missing_key'])  # 輸出: default_value

總結

defaultdict 是一個非常有用的工具,可以簡化處理缺失鍵的代碼,使代碼更加簡潔和易讀。它特別適合用於計數、分組等需要動態添加鍵值對的場


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言