Senarai Manipulasi dalam Python: Melepasi Nilai vs. Rujukan
Semasa bekerja dengan senarai dalam Python, satu cabaran biasa ialah konsep lulus dengan merujuk dan memahami cara ia mempengaruhi perubahan senarai. Mari kita terokai senario untuk menggambarkan isu ini:
a = ['help', 'copyright', 'credits', 'license'] b = a b.append('XYZ') print(b) # ['help', 'copyright', 'credits', 'license', 'XYZ'] print(a) # ['help', 'copyright', 'credits', 'license', 'XYZ']
Dalam contoh ini, anda berhasrat untuk menambahkan nilai pada senarai 'b,' tetapi yang menghairankan, nilai senarai 'a' juga berubah. Ini kerana, dalam Python, senarai (dan objek lain) dihantar melalui rujukan, yang bermaksud ia berkongsi lokasi memori yang sama.
Jadi, apabila anda menetapkan 'b' kepada 'a,' anda tidak mencipta senarai baharu tetapi merujuk senarai yang sama. Oleh itu, sebarang perubahan yang dibuat pada satu senarai akan ditunjukkan dalam senarai yang lain.
Cara Meluluskan Nilai
Untuk mengelakkan perubahan yang tidak diingini, anda perlu membuat senarai baharu itu salinan asal. Dalam Python, penghirisan boleh digunakan untuk mencapai perkara ini:
b = a[:]
Dengan menggunakan operator hirisan [:] pada senarai 'a,' anda mencipta senarai 'b' baharu yang mengandungi semua elemen 'a' tetapi menduduki lokasi memori yang berasingan. Sekarang, sebarang perubahan yang dibuat kepada 'b' tidak akan menjejaskan 'a.'
Atas ialah kandungan terperinci Senarai Python: Lulus dengan Nilai atau Rujukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!