Python - Salin Array
Halo para pemrogram Python yang aspiratif! Hari ini, kita akan memasuki dunia yang menarik tentang menyalin array di Python. Sebagai guru ilmu komputer yang ramah di lingkungan kita, saya sangat senang untuk mengajarkan Anda dalam perjalanan ini. Jadi, ambil minuman kesukaan Anda, rasakan kenyamanan, dan mari kita mulai petualangan ini bersama!
Mengerti Array di Python
Sebelum kita melompat ke menyalin array, mari kita sekilas mengenalkan kembali konsep array di Python. Di Python, kita biasanya menggunakan daftar (list) untuk mewakili array. Daftar adalah sangat fleksibel dan dapat menyimpan berbagai jenis data.
Berikut adalah contoh sederhana dari daftar di Python:
buah = ["apel", "pisang", "ceri"]
print(buah)
Output:
['apel', 'pisang', 'ceri']
Dalam contoh ini, buah
adalah daftar (atau array) kita yang berisi tiga elemen string.
Sekarang, mari kita pelajari bagaimana kita dapat menyalin array ini!
Salin Array Menggunakan Operator Penugasan
Cara paling sederhana untuk menyalin array mungkin adalah dengan menggunakan operator penugasan (=
). Namun, metode ini memiliki kesulitan. Mari kita lihat cara kerjanya:
daftar_awal = [1, 2, 3, 4, 5]
daftar_salinan = daftar_awal
print("Daftar asli:", daftar_awal)
print("Daftar salinan:", daftar_salinan)
# Sekarang, mari kita ubah daftar salinan
daftar_salinan[0] = 100
print("\nSetelah modifikasi:")
print("Daftar asli:", daftar_awal)
print("Daftar salinan:", daftar_salinan)
Output:
Daftar asli: [1, 2, 3, 4, 5]
Daftar salinan: [1, 2, 3, 4, 5]
Setelah modifikasi:
Daftar asli: [100, 2, 3, 4, 5]
Daftar salinan: [100, 2, 3, 4, 5]
Ngomong-ngomong, ketika kita mengubah daftar_salinan
, daftar_awal
juga berubah! Ini karena operator penugasan tidak membuat daftar baru.-instead, kedua variabel mengacu ke daftar yang sama di memori. Ini seperti memberikan kunci rumah Anda kepada seorang teman - mereka tidak mendapat rumah baru, hanya akses ke rumah Anda!
Metode Salin Dangkal
Untuk menghindari masalah ini, kita dapat menggunakan metode salin dangkal. Metode ini membuat daftar baru, tetapi elemen masih mengacu ke objek yang sama. Mari kita lihat beberapa cara untuk membuat salin dangkal:
- Menggunakan metode
copy()
:
daftar_awal = [1, 2, 3, 4, 5]
daftar_salinan = daftar_awal.copy()
daftar_salinan[0] = 100
print("Daftar asli:", daftar_awal)
print("Daftar salinan:", daftar_salinan)
Output:
Daftar asli: [1, 2, 3, 4, 5]
Daftar salinan: [100, 2, 3, 4, 5]
- Menggunakan konstruktor
list()
:
daftar_awal = [1, 2, 3, 4, 5]
daftar_salinan = list(daftar_awal)
daftar_salinan[0] = 100
print("Daftar asli:", daftar_awal)
print("Daftar salinan:", daftar_salinan)
Output:
Daftar asli: [1, 2, 3, 4, 5]
Daftar salinan: [100, 2, 3, 4, 5]
- Menggunakan pengiris (slicing):
daftar_awal = [1, 2, 3, 4, 5]
daftar_salinan = daftar_awal[:]
daftar_salinan[0] = 100
print("Daftar asli:", daftar_awal)
print("Daftar salinan:", daftar_salinan)
Output:
Daftar asli: [1, 2, 3, 4, 5]
Daftar salinan: [100, 2, 3, 4, 5]
Metode ini bekerja dengan baik untuk daftar sederhana. Tetapi apa jika kita memiliki daftar yang berisi daftar? Itulah saat kita perlu menggunakan senjata besar!
Salin Array Menggunakan Salin Dalam
Ketika berurusan dengan daftar bersarang atau objek kompleks, kita perlu menggunakan salin dalam. Metode ini membuat salin yang sepenuhnya independen dari daftar asli, termasuk semua objek bersarang. Ini seperti mengkloning rumah Anda beserta semua isinya!
Untuk menggunakan salin dalam, kita perlu mengimpor modul copy
:
import copy
daftar_awal = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
daftar_salinan_dalam = copy.deepcopy(daftar_awal)
daftar_salinan_dalam[0][0] = 100
print("Daftar asli:", daftar_awal)
print("Daftar salinan dalam:", daftar_salinan_dalam)
Output:
Daftar asli: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Daftar salinan dalam: [[100, 2, 3], [4, 5, 6], [7, 8, 9]]
Seperti yang bisa Anda lihat, mengubah daftar salinan dalam tidak mempengaruhi daftar asli, bahkan untuk elemen bersarang.
Kapan Menggunakan Salin Dalam
Salin dalam adalah sangat kuat tetapi datang dengan biaya performa. Ini seperti mengemas semua rumah Anda untuk pindah - itu memerlukan waktu dan upaya lebih! Gunakan salin dalam ketika:
- Anda memiliki daftar bersarang atau objek kompleks
- Anda perlu memastikan keseluruhan independensi antara data asli dan salinan
- Anda berurusan dengan objek yang dapat diubah dalam daftar Anda
Ringkasan Metode Salin
Berikut adalah tabel ringkasan tentang metode salin yang kita diskusikan:
Metode | Sintaks | Jenis Salin | kasus Penggunaan |
---|---|---|---|
Penugasan (= ) |
new_list = old_list |
Referensi (Tidak ada salin) | Ketika Anda ingin kedua variabel mengacu ke daftar yang sama |
copy() method |
new_list = old_list.copy() |
Salin Dangkal | Untuk daftar sederhana dengan elemen tak dapat diubah |
list() constructor |
new_list = list(old_list) |
Salin Dangkal | Untuk daftar sederhana dengan elemen tak dapat diubah |
Pengiris | new_list = old_list[:] |
Salin Dangkal | Untuk daftar sederhana dengan elemen tak dapat diubah |
copy.deepcopy() |
new_list = copy.deepcopy(old_list) |
Salin Dalam | Untuk daftar bersarang atau daftar dengan elemen dapat diubah |
Ingat, memilih metode salin yang benar adalah seperti memilih alat yang tepat untuk pekerjaan. Anda tidak akan menggunakan palu besar untuk menghanggapi gambar yang di atas, kan? Demikian juga, gunakan metode salin yang paling sederhana yang memenuhi kebutuhan Anda.
Kesimpulan
Selamat! Anda baru saja meningkatkan keterampilan Python Anda dengan menguasai menyalin array. Dari penugasan sederhana ke salin dalam, Anda sekarang memiliki toolkit untuk menangani berbagai skenario. Ingat, praktek membuat perfect, jadi cobalah metode ini di proyek Anda sendiri.
Sebagai penutup, di sini adalah sedikit humor pemrogram: Mengapa pemrogram itu meninggalkan pekerjaannya? Karena dia tidak mendapat array! ? (Paham? Naik gaji!)
tetap untuk mengoding, tetap untuk belajar, dan yang paling penting, tetap untuk bersenang-senang dengan Python!
Credits: Image by storyset