Menggabungkan dua kamus python tanpa menimpa

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
>>> a = {1:'peanut', 2:'butter', 3:'jelly', 4:'time'} >>> b = {1:'fish', 2:'chips'} _
  • Kamus dengan nilai bersarang
>>> c = {1: ['peanut','butter','jelly','time'], 2:['fish','chips']} >>> d = {1: ['fish','chips'], 2:['peanut','butter','jelly','time']}

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

>>> y = {**c, **d} >>> print(y) {1: ['fish', 'chips'], 2: ['peanut', 'butter', 'jelly', 'time']} _

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

Bisakah kita menggabungkan dua kamus dengan Python?

Kita dapat menggabungkan dua kamus dengan python menggunakan pemahaman kamus . Di sini, kami juga menggunakan perulangan for untuk mengulangi item kamus dan menggabungkannya untuk mendapatkan hasil akhir. Jika kedua kamus memiliki kunci yang sama, maka hasil akhir menggunakan metode ini akan berisi nilai kamus kedua.

Bagaimana Anda memperbarui kamus dengan Python tanpa menimpa?

Dalam Python 3, Anda bisa melakukan z = {**d2, **d1} .

Bagaimana cara menggabungkan beberapa kamus menjadi satu?

Cara Menggabungkan Kamus dengan Python .
Menggunakan for loop
Menggunakan dict. memperbarui() metode
Menggunakan operator **
Menggunakan. (Union) operator (untuk Python 3. 9 ke atas)

Bagaimana Anda menetapkan nilai dalam kamus dengan cara yang tidak menimpa nilai yang sudah ada?

setdefault akan secara tepat "menetapkan nilai dalam dict hanya jika nilainya belum ditetapkan". Simpan jawaban ini.

Postingan terbaru

LIHAT SEMUA