Seperti yang disebutkan orang lain, a.update(b)untuk beberapa dikte adan bakan mencapai hasil yang Anda minta dalam pertanyaan Anda. Namun, saya ingin menunjukkan bahwa berkali-kali saya telah melihat extendmetode pemetaan / set objek keinginan bahwa dalam sintaks a.extend(b), anilai-nilai TIDAK boleh ditimpa oleh bnilai-nilai. a.update(b)menimpa anilai-nilai, dan karenanya bukan pilihan yang baik untuk extend.
Perhatikan bahwa beberapa bahasa memanggil metode ini defaultsatau inject, karena dapat dianggap sebagai cara menyuntikkan nilai-nilai b (yang mungkin merupakan seperangkat nilai default) ke kamus tanpa menimpa nilai-nilai yang mungkin sudah ada.
Tentu saja, Anda dapat mencatat sederhana yang a.extend(b)hampir sama dengan b.update(a); a=b. Untuk menghapus tugas, Anda bisa melakukannya sebagai berikut:
def extend(a,b):
"""Create a new dictionary with a's properties extended by b,
without overwriting.
>>> extend({'a':1,'b':2},{'b':3,'c':4})
{'a': 1, 'c': 4, 'b': 2}
"""
return dict(b,**a)
Terima kasih kepada Tom Leys untuk ide cerdasnya yang menggunakan dictkonstruktor efek samping extend.