Menggabungkan dua kamus python dengan menimpa

Pada artikel ini, kita akan membahas cara menambahkan isi kamus ke kamus lain tanpa menimpa nilai kunci yang serupa

Misalkan kita memiliki dua kamus dengan beberapa kunci yang mirip. Seperti ini,

dict_1 = {  "Hello": 56,
            "at": 23,
            "test": 43,
            "this": 12 }

dict_2 = {  'test': 4,
            'at': 5,
            'why': 6,
            'Hello': 20 }

dict_1 dan dict_2 mengikuti kunci umum - 'test', 'at', 'Hello'. Sekarang kami ingin menambahkan isi kamus dict_2 ke kamus dict_1. Namun alih-alih menimpa nilai untuk kunci umum, kami ingin menggabungkan nilai kunci umum sambil menambahkan. Misalnya, setelah menambahkan konten dict_2 ke dict_1, konten akhir dict_1 akan menjadi seperti ini,

{'Hello': [56, 20],
 'at'   : [23, 5],
 'test' : [43, 4],
 'this' : 12,
 'why'  : 6}
_

Nilai kunci serupa dari kedua kamus harus tetap ada dalam daftar setelah penggabungan. Mari kita lihat bagaimana melakukannya,

Tambahkan kamus ke kamus tanpa menimpa dengan Python

Langsung memanggil fungsi update() kamus dengan kamus lain sebagai argumen i. e. dict_1. update(dict_2), akan memperbarui nilai kunci umum yang ada. Jadi, sebagai gantinya, kami akan melakukan langkah-langkah berikut,

Iklan

  • Ulangi semua pasangan nilai kunci kamus dict_2 dalam satu lingkaran
  • Selama iterasi, untuk setiap pasangan kunci-nilai, periksa apakah kunci sudah ada di kamus dict_1 atau tidak
    • Jika kunci sudah ada di dict_1 dan nilai untuk kunci itu bukan tipe daftar, buat daftar dan tambahkan kedua nilai kunci itu dari dict_1 & dict_2 ke dalamnya. Kemudian ganti nilai kunci saat ini di dict_1 dengan daftar ini
    • Jika kunci sudah ada di dict_1 dan memiliki nilai tipe daftar. Kemudian tambahkan nilai kunci ini dari dict_2 ke nilai daftar di dict_1
    • Jika kunci tidak ada di dict_1, tambahkan key-value pair ini ke dict_1

Mari kita pahami dengan sebuah contoh,

dict_1 = {  "Hello": 56,
            "at": 23,
            "test": 43,
            "this": 12 }

dict_2 = {  'test': 4,
            'at': 5,
            'why': 6,
            'Hello': 20 }


for key, value in dict_2.items():
    if key in dict_1:
        if isinstance(dict_1[key], list):
            dict_1[key].append(value)
        else:
            temp_list = [dict_1[key]]
            temp_list.append(value)
            dict_1[key] = temp_list
    else:
        dict_1[key] = value


print(dict_1)

Keluaran

{'Hello': [56, 20],
 'at'   : [23, 5],
 'test' : [43, 4],
 'this' : 12,
 'why'  : 6}
_

Di sini, kami menambahkan semua pasangan nilai kunci kamus dict_2 ke dict_1 kamus lain. Baik dict_1 dan dict_2 memiliki kunci yang sama, dan untuk kunci tersebut, nilai dari dict_2 ditambahkan bersama dengan nilai yang ada dari dict_1. Jadi, tidak ada yang ditimpa saat menambahkan kamus ke kamus lain

Ringkasan

Kami mempelajari cara untuk memindahkan semua isi kamus ke kamus lain tanpa menimpa nilai kunci yang serupa

Pada artikel ini kita akan membahas berbagai cara untuk menggabungkan dua kamus atau lebih. Juga, tangani skenario di mana kita perlu menyimpan nilai kunci umum alih-alih menimpanya

Menggabungkan dua kamus menggunakan dict. memperbarui()

Di Python, kelas Kamus menyediakan fungsi update() i. e

dict.update([other])
_

Itu menerima kamus lain atau objek Iterable (kumpulan pasangan nilai kunci) sebagai argumen. Kemudian gabungkan konten kamus yang diteruskan ini atau Iterable dalam kamus saat ini

Mari gunakan fungsi update() ini untuk menggabungkan dua kamus

Iklan

Misalkan kita memiliki dua kamus i. e

# Create first dictionary
dict1 = {  'Ritika': 5, 'Sam': 7, 'John' : 10 }

# Create second dictionary
dict2 = {'Aadi': 8,'Sam': 20,'Mark' : 11 }

Kedua kamus memiliki kunci umum 'Sam' dengan nilai yang berbeda. Sekarang mari gabungkan konten dict2 di dict1 i. e

# Merge contents of dict2 in dict1
dict1.update(dict2)

print('Updated dictionary 1 :')
print(dict1)
_

Sekarang isi dict1 adalah,

{'Ritika': 5, 'Sam': 20, 'John': 10, 'Aadi': 8, 'Mark': 11}

Semua elemen di dict2 ditambahkan ke dict1. Kunci yang umum di kedua kamus akan berisi nilai seperti dict2. Pada dasarnya kamus yang kita berikan update() sebagai argumen akan menimpa nilai kunci umum. Oleh karena itu 'Sam' memiliki nilai 20 sekarang

Hal penting lainnya yang perlu diperhatikan adalah, kami tidak mendapatkan kamus baru. Isi dict1 berubah dan sekarang selain isinya yang sudah ada, ia juga memiliki isi dict2. Bagaimana jika kita ingin menggabungkan isi 2 atau kamus ke kamus baru?

Menggabungkan dua Kamus atau lebih menggunakan **kwargs

**kwargs

Menggunakan **kwargs kita dapat mengirim pasangan kunci-nilai panjang variabel ke suatu fungsi. Saat kita menerapkan ** ke kamus, maka isi kamus akan diperluas sebagai kumpulan pasangan nilai kunci
Misalnya, jika kita memiliki kamus i. e

dict1 = {  'Ritika': 5, 'Sam': 7, 'John' : 10 }
_

Saat kami menerapkan ** ke kamus ini, kamus ini membatalkan serial konten kamus ke kumpulan pasangan kunci/nilai i. e

**dict1
_

setara dengan,

'Ritika': 5, 'Sam': 7, 'John' : 10

Jadi, mari gunakan **kwargs untuk menggabungkan dua kamus atau lebih
Misalkan kita memiliki dua kamus i. e

# Create first dictionary
dict1 = {  'Ritika': 5, 'Sam': 7, 'John' : 10 }

# Create second dictionary
dict2 = {'Aadi': 8,'Sam': 20,'Mark' : 11 }

Sekarang gabungkan isi dict1 dan dict2 ke kamus baru dict3 i. e

# Merge contents of dict2 and dict1 to dict3
dict3 = {**dict1 , **dict2}

print('Dictionary 3 :')
print(dict3)

Isi kamus baru adalah,

Dictionary 3 :
{'Ritika': 5, 'Sam': 20, 'John': 10, 'Aadi': 8, 'Mark': 11}

Bagaimana cara kerjanya?

**dict1 & **dict2 memperluas konten kedua kamus ke kumpulan pasangan nilai kunci i. e

# Create first dictionary
dict1 = {  'Ritika': 5, 'Sam': 7, 'John' : 10 }

# Create second dictionary
dict2 = {'Aadi': 8,'Sam': 20,'Mark' : 11 }
0

Oleh karena itu dibuat kamus baru yang berisi data dari kedua kamus tersebut

Baik dict1 & dict2 memiliki satu kunci umum 'Sam'. Dalam nilai dict3 untuk kunci umum ini 'Sam' adalah seperti dict2 karena kami meneruskan **dict2 sebagai argumen kedua

Menggabungkan tiga kamus

Demikian pula kita dapat menggabungkan 3 kamus i. e

# Create first dictionary
dict1 = {  'Ritika': 5, 'Sam': 7, 'John' : 10 }

# Create second dictionary
dict2 = {'Aadi': 8,'Sam': 20,'Mark' : 11 }
1

Keluaran

# Create first dictionary
dict1 = {  'Ritika': 5, 'Sam': 7, 'John' : 10 }

# Create second dictionary
dict2 = {'Aadi': 8,'Sam': 20,'Mark' : 11 }
2

Sampai sekarang kita telah melihat bahwa saat menggabungkan kamus, nilai kunci umum ditimpa. Bagaimana jika kita ingin menyimpan semua nilai?

Gabungkan dua kamus dan tambahkan nilai kunci umum

Misalkan kita memiliki dua kamus dengan kunci umum i. e

# Create first dictionary
dict1 = {  'Ritika': 5, 'Sam': 7, 'John' : 10 }

# Create second dictionary
dict2 = {'Aadi': 8,'Sam': 20,'Mark' : 11 }

Sekarang kami ingin menggabungkan kamus ini sedemikian rupa sehingga harus menyimpan semua nilai untuk kunci umum dalam daftar i. e

# Create first dictionary
dict1 = {  'Ritika': 5, 'Sam': 7, 'John' : 10 }

# Create second dictionary
dict2 = {'Aadi': 8,'Sam': 20,'Mark' : 11 }
_4

Keluaran

# Create first dictionary
dict1 = {  'Ritika': 5, 'Sam': 7, 'John' : 10 }

# Create second dictionary
dict2 = {'Aadi': 8,'Sam': 20,'Mark' : 11 }
5

Kedua kamus memiliki kunci umum 'Sam'. Dalam kamus gabungan dict3, nilai 'Sam' dari dict1 & dict2 digabungkan ke dalam daftar

Bagaimana cara menggabungkan dua kamus dengan kunci yang berbeda?

Bagaimana Menggabungkan Kamus dengan Python? .
1) Menggunakan metode update(). Anda dapat menggabungkan dua kamus dengan python menggunakan metode update(). .
2) Menggunakan gabungan(. ) operator. .
3) Menggunakan operator **. .
4) Membuka kamus kedua. .
5) Menggunakan koleksi. .
6) Menggunakan itertools. .
7) Menggunakan pemahaman kamus. .
8) Tambahkan nilai kunci umum

Bagaimana cara menimpa kamus dengan Python?

Kamus Python menawarkan metode update() yang memungkinkan kita menambahkan kamus ke kamus lain. Metode update() secara otomatis menimpa nilai kunci yang ada dengan yang baru.

Bagaimana cara menggabungkan dua Dicts menjadi satu?

Python 3. 9 telah memperkenalkan operator gabungan (. ) di kelas dict . Menggunakan operator gabungan, kita dapat menggabungkan kamus dalam satu baris kode. Kami juga dapat menggabungkan kamus di tempat dengan menggunakan operator pembaruan (. =).

Bagaimana cara 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