defaultdict
defaultdict
là một lớp trong module collections
, giống như dict
, nhưng khi bạn truy cập một key không tồn tại, thay vì báo lỗi KeyError
, nó sẽ tự động tạo một giá trị mặc định cho bạn.
from collections import defaultdict
d = defaultdict(int) # mặc định mỗi key sẽ có giá trị là 0
d["a"] += 1
d["b"] += 2
print(d) # 👉 {'a': 1, 'b': 2}
Nếu bạn dùng dict
bình thường thì d["a"] += 1
sẽ lỗi nếu "a" chưa tồn tại. Nhưng với defaultdict
, nó sẽ tạo "a": 0
trước, rồi mới +1
.
Dùng list
làm mặc định
d = defaultdict(list)
d["fruits"].append("apple")
d["fruits"].append("banana")
print(d) # 👉 {'fruits': ['apple', 'banana']}
Tự động tạo []
nếu key chưa tồn tại — rất tiện khi nhóm dữ liệu.
Dùng set
làm mặc định
d = defaultdict(set)
d["numbers"].add(1)
d["numbers"].add(2)
print(d) # 👉 {'numbers': {1, 2}}
Tự định nghĩa hàm mặc định
def default_name():
return "unknown"
d = defaultdict(default_name)
print(d["name"]) # 👉 'unknown'
Không có bình luận