Tidak jarang memiliki dua kamus dengan Python yang ingin Anda gabungkan. Pada artikel ini, kita akan melihat berbagai cara menggabungkan dua kamus dengan Python
Beberapa solusi tidak tersedia untuk semua versi Python, jadi kami juga akan memeriksa cara menggabungkan untuk rilis tertentu
Saat menggabungkan kamus, kita harus mempertimbangkan apa yang akan terjadi jika kedua kamus tersebut memiliki kunci yang sama. Pertama-tama mari kita tentukan apa yang harus terjadi saat kita bergabung
Menggabungkan Kamus dengan Python
Penggabungan biasanya terjadi dari kanan ke kiri, seperti >>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']} >>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']} 0. Ketika ada pemegang kunci yang sama di kedua kamus, nilai kamus kedua menimpa nilai kamus pertama
Hal ini dapat ditunjukkan dalam ilustrasi yang diberikan di bawah ini, di mana komponen kamus B digabungkan ke A, dengan setelan hijau kamus B menggantikan setelan jingga
Sepanjang artikel ini, kami akan menggunakan kamus berikut
- Kamus dengan nilai-nilai
- Kamus dengan nilai bersarang
Piton 3. 9 ke atas
Dari Python versi 3. 9 dan seterusnya, kita dapat menggunakan operator gabungan (diwakili oleh >>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']} >>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']} 1 ) untuk menggabungkan dua kamus
>>> x = a | b >>> print(x) {1: 'fish', 2: 'chips', 3: 'jelly', 4: 'time'} _Operator penggabungan kamus juga dapat digunakan sebagai pengganti kamus bersarang. Di sini, penimpaan lengkap dari nilai kunci yang cocok terjadi
>>> y = c | d >>> print(y) {1: ['fish', 'chips'], 2: ['peanut', 'butter', 'jelly', 'time']}Python 3 dan Di Atas
Untuk versi Python 3 sebelumnya, sayangnya kami tidak dapat menggunakan operator gabungan. Sebagai gantinya, kita dapat menggabungkan dengan membongkar kedua kamus, menggunakan >>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']} >>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']} 2 tanda bintang ganda, di dalam kamus lain seperti yang ditunjukkan di bawah ini
>>> x = {**a, **b} >>> print(x) {1: 'fish', 2: 'chips', 3: 'jelly', 4: 'time'}Hal yang sama berlaku untuk kamus dengan nilai daftar bersarang. Nilai kunci yang tumpang tindih akan ditimpa sebagai berikut
Python 2 dan Di Atas
Dalam versi Python lama, cuplikan di atas tidak akan berfungsi. Sebaliknya, penggabungan dapat difasilitasi dengan menggabungkan item kamus, atau >>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']} >>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']} 3 dari kedua variabel
Kita juga dapat menggunakan metode kamus >>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']} >>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']} 4 dan >>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']} >>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']} 5. Terakhir, kita dapat mengulangi item kamus dan menggunakan metode >>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']} >>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']} 6 untuk menambahkannya ke kamus lain
Menggunakan item()
Mari kita mulai dengan menggabungkan dengan >>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']} >>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']} 7
>>> x = dict(a.items() + b.items()) >>> print(x) {1: 'fish', 2: 'chips', 3: 'jelly', 4: 'time'}Sintaks di atas berlaku untuk nilai sederhana. Untuk kamus bersarang yang berisi nilai daftar, panggilan >>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']} >>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']} 7 perlu dilemparkan ke >>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']} >>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']} 9 lalu digabungkan
>>> y = dict(list(c.items()) + list(d.items())) >>> print(y) {1: ['fish', 'chips'], 2: ['peanut', 'butter', 'jelly', 'time']}Lihat panduan praktis dan praktis kami untuk mempelajari Git, dengan praktik terbaik, standar yang diterima industri, dan menyertakan lembar contekan. Hentikan perintah Googling Git dan benar-benar pelajari itu
Solusi ini berfungsi dengan baik karena kuncinya numerik, kunci aslinya dipertahankan. Untuk kunci dari berbagai jenis, Anda lebih memilih opsi berikut
Cara lain untuk melakukan penggabungan adalah dengan menyalin salah satu kamus dan memperbaruinya dengan yang lain seperti yang ditunjukkan di bawah ini
>>> x = a.copy() >>> x.update(b) >>> print (x) {1: 'fish', 2: 'chips', 3: 'jelly', 4: 'time'}Menambahkan Nilai Daftar di Semua Versi Python
Di bagian sebelumnya, kami telah menimpa nilai bersarang dari kamus gabungan. Ada kasus di mana nilai bersarang perlu ditambahkan, bukan ditimpa
Ini dapat dilakukan dengan menggunakan metode >>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']} >>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']} 6 seperti yang ditunjukkan di bawah ini
>>> for k, v in d.items(): .. if k in c: .. c[k].extend(v) .. else: .. c[k] = v >>> >>> print(c) {1: ['peanut', 'butter', 'jelly', 'time', 'fish', 'chips'], 2: ['fish', 'chips', 'peanut', 'butter', 'jelly']}Kesimpulan
Pada artikel ini, kita telah mempelajari cara kerja penggabungan kamus, dan bagaimana kita dapat menggabungkan dua kamus dalam versi Python yang berbeda. Menggabungkan kamus bisa sangat berguna dalam situasi seperti membaca banyak file JSON, membuat peta objek, atau bahkan membuat indeks konten