Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mencipta Senarai Bersarang Benar-Benar Tidak Boleh Berubah dalam Python?

Bagaimana untuk Mencipta Senarai Bersarang Benar-Benar Tidak Boleh Berubah dalam Python?

Linda Hamilton
Lepaskan: 2024-11-20 01:19:03
asal
1011 orang telah melayarinya

How to Create Truly Immutable Nested Lists in Python?

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:

  • Salinan Cetek:

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
Salin selepas log masuk
  • Salin Dalam menggunakan Menghiris:

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
Salin selepas log masuk
  • Salinan Dalam dengan Copy.deepcopy():

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan