Senarai Senarai: Perubahan Tidak Dijangka Merentas Subsenarai Dijelaskan
Dalam Python, apabila membuat senarai senarai, menggunakan [x] * n akan menghasilkan senarai dengan berbilang rujukan kepada senarai asas yang sama. Tingkah laku ini boleh membawa kepada perubahan yang tidak dijangka dalam semua subsenarai apabila mengubah suai nilai dalam satu subsenarai.
Sebagai contoh, pertimbangkan kod berikut:
xs = [[1] * 4] * 3
Kod ini mencipta senarai senarai, di mana setiap satu subsenarai merujuk senarai asas yang sama bagi empat 1s. Apabila kita menukar salah satu elemen dalam subsenarai:
xs[0][0] = 5
Perubahan ditunjukkan pada semua subsenarai. Ini berlaku kerana senarai asal senarai hanya mempunyai tiga rujukan kepada subsenarai asas yang sama, bukan tiga subsenarai yang berbeza.
Untuk mencipta subsenarai berasingan dengan nilai yang berbeza, anda boleh menggunakan pemahaman senarai:
xs = [[1] * 4 for _ in range(3)]
Dalam kes ini, pemahaman senarai mencipta senarai baharu empat 1 untuk setiap elemen dalam senarai senarai baharu, menghasilkan tiga yang berbeza subsenarai.
Atas ialah kandungan terperinci Mengapakah Perubahan kepada Satu Subsenarai Mempengaruhi Semua Subsenarai dalam Senarai Python Senarai Dicipta Menggunakan `[x] * n`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!