Bagaimana cara menggabungkan dua kamus dengan kunci yang sama di python?

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

Bagaimana cara menggabungkan dua kamus dengan kunci yang sama di Python?

Cara termudah untuk menggabungkan dua kamus dengan python adalah dengan menggunakan operator unpacking(**) . Dengan menerapkan operator "**" ke kamus, itu memperluas kontennya menjadi kumpulan pasangan nilai kunci.

Bisakah kita menggabungkan dua kamus dengan Python?

Dalam Python 3. 9 dan versi yang lebih baru, yaitu. operator dapat digunakan untuk menggabungkan kamus. Catatan. Jika ada dua kunci dengan nama yang sama, kamus gabungan berisi nilai kunci terakhir

Bisakah dua kamus memiliki kunci yang sama?

Tidak, setiap kunci dalam kamus harus unik. Anda tidak dapat memiliki dua kunci dengan nilai yang sama . Mencoba menggunakan kunci yang sama lagi hanya akan menimpa nilai sebelumnya yang disimpan. Jika kunci perlu menyimpan banyak nilai, maka nilai yang terkait dengan kunci tersebut harus berupa daftar atau kamus lain.

Bagaimana Anda bisa menambahkan pasangan nilai kunci dari satu kamus ke kamus lain dengan Python?

Di bawah ini adalah dua pendekatan yang bisa kita gunakan. .
Menetapkan kunci baru sebagai subskrip. Kami menambahkan elemen baru ke kamus dengan menggunakan kunci baru sebagai subskrip dan memberinya nilai. .
Menggunakan metode update(). .
Dengan menggabungkan dua kamus