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!

Python - Copy Arrays

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:

  1. 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]
  1. 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]
  1. 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:

  1. Anda memiliki daftar bersarang atau objek kompleks
  2. Anda perlu memastikan keseluruhan independensi antara data asli dan salinan
  3. 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