Rumah > Artikel > pembangunan bahagian belakang > Mengapa Mengubah Suai Elemen Senarai Bersarang Mempengaruhi Semua Subsenarai dalam Python?
Indeks Senarai Bersarang
Apabila bekerja dengan senarai bersarang dalam Python, adalah penting untuk memahami konsep rujukan senarai dan cara ia mempengaruhi indeks senarai .
Senarai Rujukan
Tidak seperti kebanyakan bahasa pengaturcaraan yang melepasi pembolehubah mengikut nilai, Python menghantar senarai melalui rujukan. Ini bermakna memberikan senarai kepada pembolehubah lain mencipta rujukan kepada objek senarai asas yang sama dalam ingatan.
Indeks Senarai Bersarang
Dalam kod yang disediakan, masalah timbul daripada penggunaan pendaraban senarai. Baris some_list = 4 * [(4 * [0])] mencipta empat rujukan kepada objek senarai yang sama, bermakna perubahan kepada salah satu daripada subsenarai akan menjejaskan keempat-empatnya.
Hasil Jangkaan
Keputusan yang dijangkakan ialah:
[0, 0, 0, 0] [0, 1, 1, 1] [0, 1, 1, 1] [0, 1, 1, 1]
Keputusan Sebenar
Keputusan sebenar ialah:
[0, 1, 1, 1] [0, 1, 1, 1] [0, 1, 1, 1] [0, 1, 1, 1]
Penyelesaian
Untuk mengelakkan isu ini, gunakan gelung untuk membuat senarai bersarang tanpa membuat berbilang rujukan kepada senarai yang sama. Kod yang diperbetulkan ialah:
some_list = [(4 * [0]) for _ in range(4)]
Gelung ini mencipta empat senarai bebas, setiap satu dengan empat sifar, memastikan gelagat yang diharapkan tercapai.
Atas ialah kandungan terperinci Mengapa Mengubah Suai Elemen Senarai Bersarang Mempengaruhi Semua Subsenarai dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!