Catatan. Jika ada dua kunci dengan nama yang sama, kamus gabungan berisi nilai kunci terakhir
Contoh 2. Menggunakan Operator **
dict_1 = {1: 'a', 2: 'b'} dict_2 = {2: 'c', 4: 'd'} print({**dict_1, **dict_2})Keluaran
{1: 'a', 2: 'c', 4: 'd'}_Dalam program di atas, kami telah menggunakan ** untuk membongkar kamus dict_1 dan dict_2. Kemudian, kamus digabungkan dengan menempatkannya di dalam {}
Untuk mengetahui lebih lanjut tentang **kwargs, kunjungi Python *args dan **kwargs
Catatan. Kode di atas berfungsi untuk Python 3. 5 dan di atas versi
Contoh 3. Menggunakan salin() dan perbarui()
dict_1 = {1: 'a', 2: 'b'} dict_2 = {2: 'c', 4: 'd'} dict_3 = dict_2.copy() dict_3.update(dict_1) print(dict_3)Keluaran
{2: 'b', 4: 'd', 1: 'a'}Di sini, pertama-tama kita menyalin elemen dict_2 ke {1: 'a', 2: 'c', 4: 'd'}0 menggunakan metode dictionary copy(). Kemudian, kami memperbarui {1: 'a', 2: 'c', 4: 'd'}_0 dengan nilai {1: 'a', 2: 'c', 4: 'd'}2 menggunakan metode dictionary update()
Dalam tutorial sebelumnya, kita belajar tentang Python Dictionaries dan melihat bahwa mereka dianggap sebagai kumpulan yang tidak terurut dengan pasangan books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 28, di mana kunci digunakan untuk mengakses item yang bertentangan dengan posisi, seperti dalam daftar misalnya
Dalam tip singkat ini, saya akan menunjukkan cara menggabungkan (menggabungkan) dua kamus menjadi satu. Sebelum kita mulai, saya sarankan Anda membuka IDE Python online ini untuk menjalankan blok kode berikut dan melihat hasilnya
Menggunakan Metode books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} _29
Katakanlah kita memiliki dua kamus berikut
1books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 2books2 = {4: 'JavaScript and jQuery', 5: 'Simplifying JavaScript'}
Bagaimana kita bisa menggabungkan kedua kamus itu dalam satu kamus? . Sebagaimana dinyatakan dalam dokumentasi Python
Perbarui kamus dengan pasangan kunci/nilai dari yang lain, menimpa kunci yang sudah ada. Kembalikan books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} _31
menerima objek kamus lain atau iterable dari pasangan kunci/nilai (sebagai tupel atau iterable lainnya dengan panjang dua). Jika argumen kata kunci ditentukan, kamus kemudian diperbarui dengan pasangan kunci/nilai tersebut. books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} _33
Jadi, untuk menggabungkan kamus books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} _34 menjadi books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 35, sertakan dan jalankan kode berikut di IDE Python Anda
1books1.update(books2) 23print(books1)
Dalam hal ini, Anda akan mendapatkan output berikut
1books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 02books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 23
Jika Anda menggabungkan books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} _35 menjadi books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 34 seperti pada kode berikut
1books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 2books2 = {4: 'JavaScript and jQuery', 5: 'Simplifying JavaScript'} 3books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 920212223
Anda akan mendapatkan kamus yang disusun ulang sebagai output
1252273
Namun, ada masalah saat menggunakan books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 29 untuk menggabungkan dua kamus. Masalahnya terletak pada kenyataan bahwa kamus asli dapat dimodifikasi. Dengan kata lain, dalam kasus pertama misalnya, books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 39 , versi asli dari books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 35 could be modified, and in the latter case, books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 41, the original version of books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 34, could be modified.
Misalnya, perhatikan kamus yang disusun ulang berikut ini
1books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 2books2 = {4: 'JavaScript and jQuery', 5: 'Simplifying JavaScript'} 23books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 9books1.update(books2) 2122print(books1) books2 = {4: 'JavaScript and jQuery', 5: 'Simplifying JavaScript'} 9
Seperti yang mungkin telah Anda amati, kedua kamus memiliki kunci yang sama, yaitu books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 43
Dalam hal ini, contoh pertama (yaitu, 'Pelajari JavaScript Secara Visual') akan dibuang, sehingga keluaran berikut akan ditampilkan
1112133
Kita akan belajar tentang cara menghindari perilaku ini nanti
Melewati Semua Item ke Kamus Baru dalam books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 44 Loop
Anda juga dapat menggabungkan dua kamus menggunakan loop Python books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 44
Dalam hal ini, kami akan menetapkan kamus kosong ke variabel — yang saya sebut books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 46 — dan kemudian untuk setiap kali kami mengulangi kedua kamus (yaitu, books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 35 dan books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 34), kami ingin menetapkan kunci dan nilai masing-masing . books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} _46
Ini kode untuk itu
1162183books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 9books1.update(books2) 1____111__________books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} __________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Kode ini juga akan memberikan output yang diinginkan
1books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 02283
Menggabungkan Dua Kamus dalam Ekspresi Tunggal Dengan Tanda Bintang Ganda
Metode lain yang dapat Anda gunakan untuk menggabungkan dua kamus, di mana Anda dapat melakukan tugas seperti itu dalam satu ekspresi, adalah dengan operator tanda bintang ganda (books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 50)
1books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 2books2 = {4: 'JavaScript and jQuery', 5: 'Simplifying JavaScript'} 3books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 936212224books2 = {4: 'JavaScript and jQuery', 5: 'Simplifying JavaScript'} 9
Menggunakan tanda bintang ganda menandakan bahwa kita ingin menggabungkan kamus books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 34 menjadi books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 35
Menjalankan kode ini akan memberi Anda books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 53 pesan. Agar kode ini berfungsi, Anda harus mengubah kunci menjadi string
1162183books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 936212224books2 = {4: 'JavaScript and jQuery', 5: 'Simplifying JavaScript'} 9
Sekarang, menjalankan kode akan memberi Anda hasil yang diinginkan
1132153
Mempertahankan Nilai Kunci
Kembali ke masalah sebelumnya tentang mempertahankan nilai kunci, bagaimana kita dapat menggabungkan dua kamus sambil mempertahankan aslinya dari setiap kamus?
Solusinya adalah sebagai berikut (diambil dari jawaban di )
1182books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 003books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 9books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 21books2 = {4: 'JavaScript and jQuery', 5: 'Simplifying JavaScript'} 222books2 = {4: 'JavaScript and jQuery', 5: 'Simplifying JavaScript'} 9books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 08books1.update(books2) 7books1.update(books2) 9books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 1121books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 1323books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 15books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 16books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 17books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 18
Output dalam hal ini adalah
1books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 202books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 223books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 24books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 9books1 = {1: 'You Dont Know JS', 2: 'Eloquent JavaScript', 3: 'Learn JavaScript Visually'} 2621
Jadi, seperti yang bisa Anda lihat dari tip singkat ini, sangat mudah untuk menggabungkan dua kamus menggunakan Python, dan ini menjadi sedikit lebih rumit jika kita ingin mempertahankan nilai dari kunci yang sama di setiap kamus
Posting ini telah diperbarui dengan kontribusi dari Kingsley Ubah. Kingsley bersemangat membuat konten yang mengedukasi dan menginspirasi pembaca. Hobinya antara lain membaca, sepak bola, dan bersepeda