Elemen Tidak Dijangka Melangkau dalam Senarai Python Semasa Pengubahsuaian Lelaran
Dalam Python, mengubah suai senarai sambil mengulanginya menggunakan untuk gelung boleh membawa kepada tingkah laku yang tidak dijangka, seperti unsur yang hilang. Pertimbangkan contoh ini:
<code class="python">x = [1,2,2,2,2] for i in x: x.remove(i) print(x)</code>
Hasil yang dijangkakan ialah senarai kosong, tetapi output sebenar ialah [2, 2]. Untuk memahami tingkah laku ini, adalah penting untuk memahami bahawa Python tidak mengubah suai senarai asas semasa lelaran. Sebaliknya, ia beroperasi pada "salinan" senarai.
Apabila x.remove(i) dipanggil, ia mengubah suai senarai x asal, manakala gelung terus berulang ke atas "salinan" x yang tidak diubah suai . Oleh itu, apabila lelaran berikutnya menemui elemen yang diubah suai bagi senarai x asal, ia tidak lagi wujud dalam "salinan" dan dilangkau.
Untuk menangani isu ini, gunakan kod berikut:
<code class="python">for i in x[:]: x.remove(i)</code>
Pengendali hirisan [:] menjana salinan x, jadi gelung berulang pada salinan ini sementara pengubahsuaian digunakan pada senarai x asal. Ini memastikan bahawa semua elemen dialih keluar seperti yang dimaksudkan.
Sentiasa ingat untuk berhati-hati apabila mengubah suai senarai semasa lelaran, kerana tingkah laku yang tidak dijangka boleh timbul disebabkan cara Python mengendalikan operasi ini.
Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan Elemen Tidak Dijangka Melangkau dalam Senarai Python Semasa Pengubahsuaian Lelaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!