Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apabila Mengubah Suai Senarai Semasa Lelaran, Patutkah Anda Menggunakan Salinan Terhiris atau Menghadapi Gelagat Tidak Dijangka?

Apabila Mengubah Suai Senarai Semasa Lelaran, Patutkah Anda Menggunakan Salinan Terhiris atau Menghadapi Gelagat Tidak Dijangka?

Patricia Arquette
Patricia Arquetteasal
2024-10-21 09:00:29848semak imbas

When Modifying Lists During Iterations, Should You Use Sliced Copies or Face Unexpected Behavior?

Teka-teki Pengubahsuaian Senarai Lelaran Python

Apabila memanipulasi senarai dalam Python, adalah penting untuk memahami cara lelaran boleh menjejaskan struktur asas. Khususnya, Python mempamerkan gelagat yang tidak dijangka apabila mengubah suai senarai sambil mengulanginya.

Pertimbangkan kod berikut:

<code class="python">x = [1, 2, 2, 2, 2]

for i in x:
    x.remove(i)

print(x)</code>

Niat kod ini adalah untuk mengalih keluar semua elemen daripada senarai . Walau bagaimanapun, apabila dilaksanakan, hasilnya ialah senarai dengan dua elemen yang tinggal.

Isu Asas

Mekanisme lelaran Python berfungsi dengan mencipta objek lelaran, yang menyediakan akses kepada urutan nilai. Apabila anda mengulangi senarai, tika iterator mengekalkan penunjuk dalaman kepada elemen semasa dalam jujukan.

Mengubah suai senarai semasa lelaran, seperti dengan mengalih keluar atau menambah elemen, membatalkan lelaran. Penunjuk menjadi dinyahrujuk, dan lelaran berkelakuan tidak dapat diramalkan.

Menggunakan Salin Dihiris

Untuk menyelesaikan isu ini, anda boleh membuat salinan hirisan senarai asal dan lelaran sebaliknya:

<code class="python">for i in x[:]:
    x.remove(i)</code>

Sintaks [:] mengembalikan salinan senarai x. Dengan mengulangi salinan ini, anda mengelak daripada mengubah suai senarai asal semasa lelaran, memastikan bahawa lelaran kekal sah.

Oleh itu, apabila bekerja dengan senarai dalam Python, adalah penting untuk mengambil kira kemungkinan akibat daripada mengubah suai senarai sambil mengulang. Menggunakan salinan yang dihiris membolehkan anda mengubah suai senarai dengan selamat dan cekap.

Atas ialah kandungan terperinci Apabila Mengubah Suai Senarai Semasa Lelaran, Patutkah Anda Menggunakan Salinan Terhiris atau Menghadapi Gelagat Tidak Dijangka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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