- 1 1. Pendahuluan
- 2 2. Metode Dasar untuk Menggabungkan Kamus
- 3 3. Menggabungkan kamus dalam kasus khusus
- 4 4. Peringatan Saat Menggabungkan Dictionary
- 5 5. Perbandingan Metode dan Panduan Pemilihan
- 6 6. Pertanyaan yang Sering Diajukan (FAQ)
- 6.1 6.1 Mengapa kesalahan terjadi saat menggabungkan dictionary?
- 6.2 6.2 Apa alternatif jika Anda ingin menggunakan operator | pada versi Python sebelum 3.9?
- 6.3 6.3 Bagaimana cara menggabungkan kamus bersarang?
- 6.4 6.4 Bisakah Anda menggabungkan beberapa kamus sekaligus menggunakan operator penggabungan?
- 6.5 6.5 Apa cara terbaik untuk menggabungkan kamus saat bekerja dengan data dalam jumlah besar?
- 7 7. Ringkasan
1. Pendahuluan
dict Python adalah struktur data yang praktis untuk mengelola data sebagai pasangan kunci‑nilai. Ada banyak situasi di mana Anda perlu menggabungkan kamus—misalnya, saat menggabungkan beberapa file konfigurasi atau mengkonsolidasikan dataset yang berbeda.
Artikel ini menjelaskan secara detail berbagai cara menggabungkan kamus di Python. Ditujukan untuk pemula hingga pengguna menengah, artikel ini mencakup teknik dasar, metode yang diperkenalkan pada Python 3.9, dan pendekatan yang berguna dalam kasus khusus. Dengan contoh kode, kita akan menelusuri karakteristik masing‑masing metode dan kapan menggunakannya.
2. Metode Dasar untuk Menggabungkan Kamus
Python menyediakan beberapa cara untuk menggabungkan kamus. Pertama, kami akan menjelaskan metode‑metode dasar.
2.1 Menggunakan Metode update()
Fitur
Metode update() adalah cara paling dasar untuk menggabungkan satu kamus ke kamus lain. Operasi ini bersifat destruktif (mengubah kamus asli), jadi berhati‑hatilah jika Anda perlu mempertahankan isi kamus asal.
Contoh kode
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
dict1.update(dict2)
print(dict1) # {'a': 1, 'b': 3, 'c': 4}
Penjelasan
Pada kode di atas, dict2 digabungkan ke dalam dict1. Jika ada kunci yang duplikat, nilai dari kamus yang digabungkan belakangan (dalam hal ini dict2) akan menimpa nilai sebelumnya.
Kasus penggunaan
- Ketika dapat menerima perubahan pada kamus asli.
- Ketika Anda membutuhkan pendekatan yang sederhana dan efisien.

2.2 Menggunakan operator unpacking (**)
Fitur
Sejak Python 3.5, Anda dapat menggunakan operator unpacking (**) untuk menggabungkan kamus. Metode ini tidak destruktif (tidak mengubah kamus asal) dan menghasilkan kamus baru.
Contoh kode
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
combined_dict = {**dict1, **dict2}
print(combined_dict) # {'a': 1, 'b': 3, 'c': 4}
Penjelasan
Metode ini memperluas beberapa kamus untuk membuat kamus baru. Jika ada kunci yang tumpang tindih, nilai dari kamus yang disebutkan belakangan (dict2) yang akan diprioritaskan.
Kasus penggunaan
- Ketika Anda memerlukan kamus baru tanpa mengubah kamus asal.
- Ketika keterbacaan kode penting.
2.3 Menggunakan operator merge (|)
Fitur
Mulai Python 3.9, operator | diperkenalkan, memungkinkan penggabungan kamus secara ringkas. Metode ini juga tidak destruktif dan menghasilkan kamus baru.
Contoh kode
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
combined_dict = dict1 | dict2
print(combined_dict) # {'a': 1, 'b': 3, 'c': 4}
Penjelasan
Pendekatan ini memungkinkan Anda menggabungkan kamus dengan cara yang intuitif. Ia meningkatkan keterbacaan kode dan mudah dipahami oleh pemula Python.
Kasus penggunaan
- Ketika menggunakan Python 3.9 atau yang lebih baru.
- Ketika Anda membutuhkan sintaks yang sederhana dan mudah dipahami.
3. Menggabungkan kamus dalam kasus khusus
Setelah membahas metode dasar untuk menggabungkan kamus, bagian ini menjelaskan kasus khusus dan teknik yang diterapkan. Ini mencakup metode yang berguna dalam situasi tertentu serta skenario yang memerlukan operasi yang lebih maju.
3.1 Menggunakan konstruktor dict()
Fitur
Metode ini menggunakan konstruktor dict() untuk menggabungkan beberapa kamus. Berguna ketika Anda ingin secara langsung menentukan nilai tambahan untuk sebuah kamus atau membuat kamus baru yang mencakup kamus‑kamus yang di‑unpack.
Contoh kode
dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3}
combined_dict = dict(dict1, **dict2)
print(combined_dict) # {'a': 1, 'b': 2, 'c': 3}
Penjelasan
dict1berfungsi sebagai dasar, dandict2di‑unpack di atasnya untuk melakukan penggabungan.- Perlu dicatat bahwa karena menggunakan operator
**, kunci padadict2harus berupa string.
Kasus penggunaan
- Ketika Anda ingin menambahkan kunci dan nilai baru selain penggabungan kamus dasar.
- Membutuhkan Python versi 3.5 atau lebih baru.
3.2 Menggunakan collections.ChainMap
Kelas ChainMap dalam modul collections pustaka standar Python berguna untuk sementara menggabungkan beberapa dictionary untuk manipulasi. Dengan metode ini, dictionary tidak digabungkan dan dictionary asli tetap terjaga.
Contoh Kode
from collections import ChainMap
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
combined = ChainMap(dict1, dict2)
print(combined['b']) # 2
print(combined['c']) # 4
Penjelasan
ChainMapmemperlakukan beberapa dictionary sebagai satu dictionary virtual tunggal.- Pencarian kunci dilakukan secara preferensial dari dictionary pertama yang ditentukan. Dalam contoh ini, untuk
'b', nilai daridict1(2) yang dipilih.
Kasus Penggunaan
- Saat Anda perlu memanipulasi dictionary secara dinamis tanpa benar-benar menggabungkannya.
- Saat menangani jumlah data besar dan Anda ingin memprioritaskan efisiensi memori.

4. Peringatan Saat Menggabungkan Dictionary
Ada beberapa poin yang perlu diperhatikan saat menggabungkan dictionary. Memahami ini dapat membantu mencegah kesalahan tak terduga dan inkonsistensi data.
4.1 Perilaku Kunci Duplikat
Saat menggabungkan dictionary, jika ada kunci duplikat, nilai dari dictionary yang ditentukan kemudian yang diutamakan.
Contoh
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
combined = {**dict1, **dict2}
print(combined) # {'a': 1, 'b': 3, 'c': 4}
Dalam contoh ini, untuk kunci 'b', nilai dict2 (3) yang dipilih. Penting untuk memahami perilaku ini.
4.2 Perbedaan Performa
Performa dapat bervariasi tergantung pada metode yang digunakan untuk menggabungkan dictionary. Perhatikan khusus saat bekerja dengan volume data besar.
Perbandingan Performa (Gambaran Umum)
- Metode
update()efisien tetapi memodifikasi dictionary asli, sehingga tidak cocok jika Anda perlu menyimpan cadangan. - Operator unpack (
**) tidak merusak dan nyaman, tetapi dapat meningkatkan penggunaan memori saat menangani jumlah data besar. ChainMaptidak benar-benar menggabungkan dictionary, sehingga efisien memori.
5. Perbandingan Metode dan Panduan Pemilihan
Membandingkan berbagai metode untuk menggabungkan dictionary dan memberikan panduan untuk memilih pendekatan yang tepat.
5.1 Tabel Perbandingan Metode
Metode | Destruktif/Tidak Destruktif | Version | Perilaku Kunci Duplikat | Kinerja |
|---|---|---|---|---|
update() | Destruktif | All versions | Kamus terakhir berkuasa | Cepat |
Operator unpacking ( | Tidak merusak | 3.5 dan seterusnya | Kamus terakhir memiliki prioritas | Sedang |
Merge operator ( | Non-destruktif | 3.9 dan seterusnya | Kamus yang lebih baru memiliki prioritas | Moderat |
ChainMap | Tidak merusak | All versions | Kamus pertama memiliki prioritas | Efisiensi memori tinggi |
5.2 Panduan Pemilihan
- Untuk Python 3.9 dan selanjutnya :
- Kami merekomendasikan operator
|karena kesederhanaan dan keterbacaanannya. - Untuk Python 3.5–3.8 :
- Disarankan menggunakan operator unpacking (
**). - Jika menangani dataset besar atau memprioritaskan efisiensi memori :
- Yang terbaik adalah menggunakan
ChainMap. - Jika operasi destruktif dapat diterima :
- Metode
update()efisien.

6. Pertanyaan yang Sering Diajukan (FAQ)
Bagian ini membahas pertanyaan umum yang dimiliki pembaca tentang penggabungan dictionary di Python, dan menjelaskan penyebab kesalahan serta cara menangani kasus khusus.
6.1 Mengapa kesalahan terjadi saat menggabungkan dictionary?
Contoh Masalah
Menjalankan kode berikut menghasilkan kesalahan.
dict1 = {'a': 1, 'b': 2}
dict2 = {('c',): 3}
combined_dict = {**dict1, **dict2}
Penyebab
Saat menggunakan operator unpacking (**), kunci harus berupa string; jika tidak, kesalahan akan terjadi. Dalam contoh di atas, kunci ('c',) di dict2 adalah tuple, yang menyebabkan kesalahan.
Solusi
Jika kunci bukan string, gunakan metode update() atau gabungkan dictionary secara manual menggunakan loop.
dict1 = {'a': 1, 'b': 2}
dict2 = {('c',): 3}
dict1.update(dict2) # Works correctly
print(dict1) # {'a': 1, 'b': 2, ('c',): 3}
6.2 Apa alternatif jika Anda ingin menggunakan operator | pada versi Python sebelum 3.9?
Jawaban
Pada versi Python sebelum 3.9, operator | tidak dapat digunakan, tetapi Anda dapat mencapai hasil yang sama menggunakan operator unpacking (**).
Contoh
Anda dapat menggunakan kode berikut pada Python 3.8 dan sebelumnya.
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
combined_dict = {**dict1, **dict2}
print(combined_dict) # {'a': 1, 'b': 3, 'c': 4}
6.3 Bagaimana cara menggabungkan kamus bersarang?
Masalah
Saat menggabungkan kamus bersarang, metode biasa mungkin tidak berfungsi seperti yang diharapkan.
dict1 = {'a': {'x': 1}}
dict2 = {'a': {'y': 2}}
combined_dict = {**dict1, **dict2}
print(combined_dict) # {'a': {'y': 2}}
Dalam contoh di atas, kunci 'a' ditimpa oleh dict2, dan nilai dict1 hilang.
Solusi
Untuk menggabungkan kamus bersarang Anda memerlukan pendekatan rekursif.
def merge_dicts(d1, d2):
result = d1.copy()
for key, value in d2.items():
if key in result and isinstance(result[key], dict) and isinstance(value, dict):
result[key] = merge_dicts(result[key], value)
else:
result[key] = value
return result
dict1 = {'a': {'x': 1}}
dict2 = {'a': {'y': 2}}
combined_dict = merge_dicts(dict1, dict2)
print(combined_dict) # {'a': {'x': 1, 'y': 2}}
6.4 Bisakah Anda menggabungkan beberapa kamus sekaligus menggunakan operator penggabungan?
Jawaban
Di Python 3.9 dan yang lebih baru, saat menggabungkan beberapa kamus sekaligus, Anda perlu menggunakan operator penggabungan secara berurutan.
Contoh
dict1 = {'a': 1}
dict2 = {'b': 2}
dict3 = {'c': 3}
combined_dict = dict1 | dict2 | dict3
print(combined_dict) # {'a': 1, 'b': 2, 'c': 3}
Anda juga dapat mencapai hasil yang sama menggunakan operator unpacking.
combined_dict = {**dict1, **dict2, **dict3}
print(combined_dict) # {'a': 1, 'b': 2, 'c': 3}
6.5 Apa cara terbaik untuk menggabungkan kamus saat bekerja dengan data dalam jumlah besar?
Jawaban
Saat bekerja dengan dataset besar, menggunakan ChainMap dapat menggabungkan secara efisien. ChainMap tidak benar-benar menggabungkan kamus, sehingga dapat mengurangi penggunaan memori.
Contoh
from collections import ChainMap
dict1 = {'a': 1}
dict2 = {'b': 2}
combined = ChainMap(dict1, dict2)
print(combined['a']) # 1
print(combined['b']) # 2

7. Ringkasan
Artikel ini menjelaskan berbagai cara menggabungkan kamus di Python, mencakup segala hal mulai dari dasar hingga teknik terbaru dengan contoh konkret yang mudah dipahami pemula.
Poin penting
- Metode
update()adalah cara sederhana dan efisien untuk memodifikasi kamus asli. - Operator unpacking (
**) tidak merusak dan berguna untuk membuat kamus baru. - Operator penggabungan (
|) tersedia di Python 3.9 dan yang lebih baru, dan membuat kode lebih sederhana serta lebih mudah dibaca. ChainMapberguna saat menangani data dalam jumlah besar secara efisien dan dapat menghemat memori.
Setiap metode memiliki karakteristiknya masing-masing, jadi penting untuk memilih pendekatan terbaik sesuai dengan tujuan dan situasi Anda. Misalnya, saat memproses data dalam jumlah besar atau menghindari duplikasi kunci kamus, ChainMap atau operator unpacking dapat efektif.
Saat menggabungkan kamus dalam proyek nyata ke depannya, pastikan untuk menerapkan metode yang dipelajari dalam artikel ini. Mencobanya dalam kode nyata adalah cara paling efektif untuk memperdalam pemahaman Anda. Juga, lihat artikel lain tentang manipulasi data di Python.


