Python默認字典(defaultdict)是Python內置字典的子類,它們在某些情況下可以替代Python內置字典。默認字典在創建時需要指定一個默認值類型,當字典中的鍵不存在時,它就會自動創建一個默認值。這個默認值是由程序員在創建字典時指定的,它可以是一個常量或者一個函數。
# 創建一個默認字典 from collections import defaultdict my_dict = defaultdict(int) # 向字典中添加鍵值對 my_dict["a"] = 1 my_dict["b"] = 2 my_dict["c"] = 3 # 如果鍵不存在,則會自動創建一個值為默認值的鍵值對 print(my_dict["d"]) # 0 # 現在字典中有一個值為0的鍵值對 print(my_dict) # defaultdict(, {'a': 1, 'b': 2, 'c': 3, 'd': 0})
在上面的例子中,默認值類型是int,因此當訪問不存在的鍵時會自動創建一個默認值0。如果默認值類型是list、set、tuple等可變類型,它們可以用來在字典中添加多個值。例如,如果默認值類型是list,可以通過append方法添加值。
# 創建一個默認字典,值為列表類型 my_dict = defaultdict(list) # 向字典中添加鍵值對 my_dict["a"].append(1) my_dict["a"].append(2) my_dict["b"].append(3) # 如果鍵不存在,則會自動創建一個值為[]的鍵值對 my_dict["c"].append(4) # 現在字典中有值為[1, 2]和[3]和[4]的鍵值對 print(my_dict) # defaultdict(, {'a': [1, 2], 'b': [3], 'c': [4]})
除了用于替代Python內置字典之外,Python默認字典還有其他的應用場景。例如,它們可以用來計數,記錄字母出現的次數等。
# 創建一個默認字典,值為int類型 letter_count = defaultdict(int) # 計數 for letter in "ababcacb": letter_count[letter] += 1 # 現在字典中存儲了每個字母出現的次數 print(letter_count) # defaultdict(, {'a': 2, 'b': 3, 'c': 2})
Python默認字典是Python內置字典的有用補充,它們可以大大簡化某些任務的代碼。它們的使用非常簡單,只需要指定默認值類型即可。