Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana Mengklon Senarai dengan Benar dalam Python dan Mengelakkan Pengubahsuaian yang Tidak Diingini?

Bagaimana Mengklon Senarai dengan Benar dalam Python dan Mengelakkan Pengubahsuaian yang Tidak Diingini?

DDD
Lepaskan: 2024-12-21 04:28:11
asal
455 orang telah melayarinya

How to Properly Clone Lists in Python and Avoid Unintended Modifications?

Senarai Pengklonan dalam Python: Cara Mencegah Perubahan Tidak Dijangka

Menetapkan pembolehubah baharu kepada senarai sedia ada (cth., new_list = my_list) dalam Python tidak membuat senarai berasingan tetapi hanya menyalin rujukan kepada senarai asal. Ini bermakna bahawa sebarang pengubahsuaian yang dibuat kepada new_list akan ditunjukkan dalam my_list dan begitu juga sebaliknya.

Sebab Kelakuan Senarai Tidak Dijangka:

Tingkah laku itu timbul kerana Python menggunakan rujukan memori untuk objek seperti senarai. Apabila anda menetapkan pembolehubah baharu pada senarai, ia tidak menduplikasi senarai tetapi sebaliknya menunjuk kepada struktur data asas yang sama. Sebarang perubahan pada satu rujukan oleh itu akan menjejaskan semua rujukan kepada struktur data yang sama.

Pilihan Pengklonan untuk Mencegah Perubahan Tidak Dijangka:

Untuk mencipta salinan senarai yang benar-benar bebas , anda mempunyai beberapa pilihan:

  1. list.copy(): The kaedah list.copy() terbina dalam mengembalikan senarai baharu yang merupakan salinan asal.
  2. Menghiris: Menggunakan sintaks penghirisan (new_list = old_list[:]) pada senarai menyalin elemen daripada senarai asal ke dalam senarai baharu.
  3. list() Pembina: The list() constructor boleh digunakan untuk mencipta senarai baharu daripada senarai sedia ada: new_list = list(old_list).
  4. copy.copy(): Fungsi copy.copy() daripada modul salinan mencipta salinan cetek senarai, bermakna senarai bersarang masih akan berkongsi rujukan dengan yang asal list.
  5. copy.deepcopy(): Fungsi copy.deepcopy() daripada modul salinan mencipta salinan dalam senarai, menyalin semua elemen bersarang juga. Ini adalah pilihan yang paling teliti tetapi juga paling perlahan.

Contoh:

my_list = [1, 2, 3]
new_list = my_list.copy()
new_list.append(4)
print(my_list)  # Output: [1, 2, 3] (unchanged)
Salin selepas log masuk

Dalam contoh ini, new_list ialah salinan my_list yang berasingan dan bebas , jadi menambahkan elemen pada new_list tidak menjejaskan my_list.

Atas ialah kandungan terperinci Bagaimana Mengklon Senarai dengan Benar dalam Python dan Mengelakkan Pengubahsuaian yang Tidak Diingini?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan