Mencipta Senarai Bersarang Tidak Boleh diubah dalam Python
Menyalin struktur data dalam Python boleh menjadi rumit, terutamanya apabila berurusan dengan senarai bersarang. Salinan cetek menggunakan [:] mengekalkan rujukan kepada elemen bersarang, menyebabkan pengubahsuaian yang tidak diingini.
Untuk menangani isu ini, apabila membuat salinan senarai bersarang, pertimbangkan teknik berikut:
Untuk senarai satu dimensi, Operator [:] mencipta salinan cetek yang merujuk elemen yang sama dalam ingatan. Mengubah suai salinan tidak menjejaskan salinan asal.
a = [1, 2] b = a[:] b[0] = 3 # Modifies b, but a remains unchanged
Untuk senarai bersarang, menghiris sahaja tidak mencukupi untuk salinan dalam. Walaupun ia mencipta senarai baharu, elemen bersarang masih merujuk kepada yang asal.
a = [[1, 2], [3, 4]] b = a[:] # Shallow copy b[0][0] = 5 # Modifies b and a
Fungsi copy.deepcopy() mencipta salinan dalam benar, secara rekursif mencipta objek baharu untuk semua peringkat senarai bersarang. Perubahan yang dibuat pada salinan tidak menjejaskan salinan asal.
import copy b = copy.deepcopy(a) b[0][0] = 6 # Modifies b, but a remains untouched
Dengan menggunakan teknik ini, anda boleh membuat senarai bersarang tidak berubah yang menyediakan pengasingan, menghalang pengubahsuaian yang tidak dijangka pada struktur data asal.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Senarai Bersarang Benar-Benar Tidak Boleh Berubah dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!