รวมหลาย Dictionary ให้กลายเป็น Dictionary เดียว
วิธีที่ 1: Loop + update() (Classic)
>> d = [{'a': 1, 'b': 2, 'c': 3}, {'a': 1, 'd': 2, 'c': 'foo'}, {'e': 57, 'c': 3}]
>>> merged = {}
>>> for x in d:
... merged.update(x)
>>> merged
{'a': 1, 'b': 2, 'c': 3, 'd': 2, 'e': 57}
หมายเหตุ: Key ซ้ำ ('a', 'c') จะใช้ค่าจาก dict ที่มาก่อน (last one wins)
วิธีที่ 2: Dictionary Unpacking (Python 3.5+)
>> merged = {}
>>> for x in d:
... merged = {**merged, **x}
>>> merged
{'a': 1, 'b': 2, 'c': 3, 'd': 2, 'e': 57}
วิธีที่ 3: dict() + ChainMap (ไม่แก้ไข original)
>> from collections import ChainMap
>>> merged = dict(ChainMap(*reversed(d)))
>>> merged
{'a': 1, 'b': 2, 'c': 3, 'd': 2, 'e': 57}
วิธีที่ 4: Merge Operator | (Python 3.9+)
>> merged = {}
>>> for x in d:
... merged |= x
>>> merged
{'a': 1, 'b': 2, 'c': 3, 'd': 2, 'e': 57}
# หรือ one-liner (right-most wins)
>>> merged = {}
>>> for x in reversed(d):
... merged = x | merged
>>> merged
{'a': 1, 'b': 2, 'c': 3, 'd': 2, 'e': 57}
สรุป: Key ซ้ำ → ค่าใดชนะ?
Python ใช้กฎ Last One Wins (ค่าจาก dict ที่รวมทีหลังจะทับทีหน้า)