Gộp (merge) nhiều dict: key trùng → value dict sau ghi đè (hoặc logic tùy chỉnh).
Cách 1: Vòng lặp + update()
dicts = [{'a': 1, 'b': 2}, {'b': 3, 'c': 4}, {'d': 5}]
merged = {}
for d in dicts:
merged.update(d)
print(merged) # {'a': 1, 'b': 3, 'c': 4, 'd': 5}
Cách 2: Dict unpacking (Python 3.5+)
merged = {**dicts[0], **dicts[1], **dicts[2]}
Cách 3: Union operator | (Python 3.9+)
merged = dicts[0] | dicts[1] | dicts[2]
Cách 4: ChainMap (view, không copy, ưu tiên dict đầu)
from collections import ChainMap merged = ChainMap(*dicts) # merged['b'] = 2 (dict đầu tiên) # Chuyển thành dict thường dict(merged)
Chọn cách nào? Python 3.9+ dùng |; 3.5-3.8 dùng {**d1, **d2}; cần view động dùng ChainMap.