Menggabungkan Beberapa dictionary dalam Satu Ekspresi di Python
Menggabungkan dictionary adalah tugas yang sering ditemui dalam pemrograman Python, apalagi saat bekerja dengan data dari berbagai sumber. Dictionary di Python memungkinkan kita menyimpan pasangan kunci-nilai dengan fleksibilitas tinggi. Di sini, kita akan bahas beberapa cara untuk menggabungkan beberapa dictionary menjadi satu dengan satu ekspresi, dari yang sederhana sampai yang lebih modern.
1. Menggunakan Operator **
(Python 3.5+)
Sejak Python 3.5, kita bisa memanfaatkan operator **
untuk unpack dictionary dan menggabungkannya dalam satu ekspresi. Cara ini ringkas dan mudah dibaca.
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
dict3 = {"d": 5}
merged_dict = {**dict1, **dict2, **dict3}
print(merged_dict)
Jika ada kunci yang sama, nilai dari dictionary yang muncul belakangan akan menimpa yang sebelumnya, seperti terlihat pada kunci "b"
.
2. Menggunakan Metode dict.update()
Metode update()
bisa digunakan untuk menggabungkan dictionary dengan memperbarui isi dictionary yang sudah ada. Kombinasikan dengan salinan dictionary awal untuk membuat satu dictionary baru.
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
dict3 = {"d": 5}
merged_dict = dict1.copy()
merged_dict.update(dict2)
merged_dict.update(dict3)
print(merged_dict)
Metode ini jelas dan praktis, meskipun membutuhkan beberapa panggilan update()
.
3. Menggunakan Operator |
(Python 3.9+)
Sejak Python 3.9, sintaks penggabungan dictionary semakin sederhana dengan operator |
, yang membuat kode lebih intuitif.
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
dict3 = {"d": 5}
merged_dict = dict1 | dict2 | dict3
print(merged_dict)
Hasilnya sama seperti operator **
, tetapi lebih modern dan mudah dipahami.
4. Menggunakan collections.ChainMap
(Untuk Kasus Lanjutan)
Untuk kasus lanjutan, jika ingin melihat beberapa dictionary seolah-olah tergabung tanpa membuat dictionary baru, ChainMap
bisa jadi solusi.
from collections import ChainMap
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
dict3 = {"d": 5}
merged_dict = ChainMap(dict1, dict2, dict3)
print(merged_dict)
ChainMap
tidak benar-benar menggabungkan dictionary, tapi memberikan tampilan seolah-olah mereka tergabung. Berguna jika kamu ingin menjaga dictionary asli tetap utuh.
Kesimpulan
Menggabungkan beberapa dictionary di Python bisa dilakukan dengan berbagai cara, tergantung kebutuhan dan versi Python yang digunakan. Operator **
cocok untuk kebanyakan kasus, sementara operator |
di Python 3.9+ memberikan sintaks modern yang lebih intuitif. Untuk skenario lanjutan, ChainMap
memungkinkan kita bekerja dengan banyak dictionary sebagai satu unit tanpa benar-benar menggabungkannya.