Python - Salin Kamus

Halo semua, pemrogram Python yang aspiratif! Hari ini, kita akan menyelam ke dalam dunia yang menarik tentang pengambilan salinan kamus di Python. Sebagai guru ilmu komputer ramah lingkungan Anda, saya sangat senang untuk menemani Anda dalam perjalanan ini. Mari kita bayangkan kamus sebagai buku resep penyihir yang kita bisa duplikat. Terdengar menyenangkan, kan? Mari kita mulai!

Python - Copy Dictionaries

Salin Kamus

Di Python, kamus adalah struktur data yang sangat berguna untuk menyimpan pasangan kunci-nilai. Tetapi apa jika kita ingin membuat salinan dari kamus? Itu saat dimana keajaiban dimulai!

Mengapa Salin Kamus?

Sebelum kita melompat ke 'bagaimana', mari kita mengerti 'mengapa'. Bayangkan Anda memiliki resep kue kesukaan Anda (kamus kita), dan Anda ingin membagikannya dengan seorang teman. Anda bisa memberikan mereka buku resep asli Anda, tetapi apa jika mereka memutuskan untuk menambahkan bubuk cabai ke kue cokelat chip? Yikes! Itulah mengapa kita membuat salinan - untuk menjaga asli kita aman sementara memungkinkan modifikasi pada salinan.

Sekarang, mari kita lihat cara-cara berbeda untuk menyalin kamus di Python.

Salin Dangkal

Salin dangkal membuat kamus baru, tetapi nilai-nilainya adalah referensi ke nilai-nilai kamus asli. Ini seperti membuat fotokopi dari daftar isi buku resep Anda - Anda memiliki buku baru, tetapi masih menunjuk ke resep asli.

Mari kita lihat ini dalam aksi:

original_dict = {"apple": 1, "banana": 2, "cherry": [3, 4, 5]}
shallow_copy = original_dict.copy()

print("Kamus asli:", original_dict)
print("Salin dangkal:", shallow_copy)

# Mengubah salin dangkal
shallow_copy["apple"] = 10
shallow_copy["cherry"][0] = 30

print("\nSetelah modifikasi:")
print("Kamus asli:", original_dict)
print("Salin dangkal:", shallow_copy)

Output:

Kamus asli: {'apple': 1, 'banana': 2, 'cherry': [3, 4, 5]}
Salin dangkal: {'apple': 1, 'banana': 2, 'cherry': [3, 4, 5]}

Setelah modifikasi:
Kamus asli: {'apple': 1, 'banana': 2, 'cherry': [30, 4, 5]}
Salin dangkal: {'apple': 10, 'banana': 2, 'cherry': [30, 4, 5]}

Perhatikan bahwa mengubah nilai 'apple' hanya mempengaruhi salin dangkal, tetapi mengubah daftar 'cherry' mengubah kedua kamus. Ini karena daftar adalah mutable, dan kedua kamus menunjuk ke objek daftar yang sama.

Salin Dalam

Salin dalam membuat kamus baru dengan salinan baru dari nilai-nilai. Ini seperti menulis ulang seluruh buku resep dengan tangan - semua adalah baru dan independen.

Untuk membuat salin dalam, kita perlu mengimpor modul copy:

import copy

original_dict = {"apple": 1, "banana": 2, "cherry": [3, 4, 5]}
deep_copy = copy.deepcopy(original_dict)

print("Kamus asli:", original_dict)
print("Salin dalam:", deep_copy)

# Mengubah salin dalam
deep_copy["apple"] = 10
deep_copy["cherry"][0] = 30

print("\nSetelah modifikasi:")
print("Kamus asli:", original_dict)
print("Salin dalam:", deep_copy)

Output:

Kamus asli: {'apple': 1, 'banana': 2, 'cherry': [3, 4, 5]}
Salin dalam: {'apple': 1, 'banana': 2, 'cherry': [3, 4, 5]}

Setelah modifikasi:
Kamus asli: {'apple': 1, 'banana': 2, 'cherry': [3, 4, 5]}
Salin dalam: {'apple': 10, 'banana': 2, 'cherry': [30, 4, 5]}

Lihat perbedaan? Dengan salin dalam, mengubah daftar 'cherry' di salin tidak mempengaruhi kamus asli.

Salin Kamus Menggunakan Metode copy()

Metode copy() adalah metode kamus bawaan yang membuat salin dangkal. Ini seperti mesin fotokopi yang kita maksudkan sebelumnya - cepat dan mudah, tetapi dengan keterbatasan yang sama seperti salin dangkal.

Berikut cara penggunaannya:

original_dict = {"apple": 1, "banana": 2, "cherry": [3, 4, 5]}
copy_dict = original_dict.copy()

print("Kamus asli:", original_dict)
print("Kamus disalin:", copy_dict)

# Mengubah salin
copy_dict["apple"] = 10
copy_dict["cherry"][0] = 30

print("\nSetelah modifikasi:")
print("Kamus asli:", original_dict)
print("Kamus disalin:", copy_dict)

Output:

Kamus asli: {'apple': 1, 'banana': 2, 'cherry': [3, 4, 5]}
Kamus disalin: {'apple': 1, 'banana': 2, 'cherry': [3, 4, 5]}

Setelah modifikasi:
Kamus asli: {'apple': 1, 'banana': 2, 'cherry': [30, 4, 5]}
Kamus disalin: {'apple': 10, 'banana': 2, 'cherry': [30, 4, 5]}

Seperti yang Anda lihat, perilaku adalah sama seperti contoh salin dangkal pertama kita.

Perbandingan Metode Pemrosesan Salinan Kamus

Mari kita ringkankan metode berbeda dalam tabel yang mudah dipahami:

Metode Jenis Salin Sintaks Objek Bersarang
Assignment (=) Referensi new_dict = original_dict Berbagi
copy() Dangkal new_dict = original_dict.copy() Berbagi
dict() Dangkal new_dict = dict(original_dict) Berbagi
deepcopy() Dalam new_dict = copy.deepcopy(original_dict) Independen

Ingat, memilih metode salin yang benar tergantung pada kebutuhan Anda. Jika Anda bekerja dengan kamus sederhana, salin dangkal mungkin cukup. Tetapi jika Anda berurusan dengan struktur bersarang dan memerlukan kebebasan penuh, pilih salin dalam.

Dalam kesimpulan, menyalin kamus di Python adalah seperti membuat salinan dari resep kesukaan Anda. kadang-kadang Anda hanya butuh referensi cepat (salin dangkal), dan kadang-kadang Anda ingin membuat buku resep baru (salin dalam). Pilihan ada di tangan Anda, pemrogram Python muda!

Sekarang, mengapa tidak Anda mencoba metode ini sendiri? Buat kamus "buku resep" Anda sendiri dan eksperimen dengan teknik salin yang berbeda. Happy coding, dan semoga kamus Anda selalu di salin dengan sempurna!

Credits: Image by storyset