Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Mengalih Keluar Elemen daripada Senarai Semasa Lelaran dalam Python Menghasilkan Keputusan yang Tidak Dijangka?

Mengapa Mengalih Keluar Elemen daripada Senarai Semasa Lelaran dalam Python Menghasilkan Keputusan yang Tidak Dijangka?

Mary-Kate Olsen
Lepaskan: 2024-12-02 06:42:13
asal
904 orang telah melayarinya

Why Does Removing Elements from a List During Iteration in Python Produce Unexpected Results?

Memahami Pengubahsuaian Lelaran Semasa Pengalihan Keluar Senarai

Kod Python di bawah ini bertujuan untuk mengalih keluar elemen ganti daripada senarai:

a = list(range(10))
remove = False
for b in a:
    if remove:
        a.remove(b)
    remove = not remove
print(a)
Salin selepas log masuk

Walau bagaimanapun, ia menghasilkan output yang tidak dijangka daripada [0, 2, 3, 5, 6, 8, 9] bukannya [0, 2, 4, 6, 8]. Ini berpunca daripada sifat dinamik proses lelaran.

Mengapa Nilai Output Adalah [0, 2, 3, 5, 6, 8, 9]:

Apabila gelung itu berulang melalui elemen dalam a, ia mengubah suai senarai dengan mengalih keluar elemen tertentu. Ini menjejaskan lelaran asas dan menerangkan corak penyingkiran dalam output. Berikut ialah pecahan langkah demi langkah:

  1. Peulang bermula pada a[0] = 0. alih keluar pada mulanya Palsu, jadi tiada elemen dialih keluar.
  2. Penyalur bergerak ke a[1] = 1. alih keluar ditetapkan kepada Benar, jadi a[1] dialih keluar.
  3. Pelajar mara ke a[2] = 2. alih keluar kini Salah, jadi a[2] kekal dalam senarai.
  4. Peulang terus ke a[3] = 3. alih keluar adalah Benar sekali lagi, jadi a[3] ialah dialih keluar.
  5. Ini berterusan, melangkau elemen ganti sehingga gelung selesai.

Ketiadaan Mesej Ralat:

Python tidak membuang ralat berkenaan lelaran yang diubah suai kerana bahasa mengutamakan prestasi. Mengesan dan mengendalikan semua pengubahsuaian lelaran yang mungkin akan dikenakan overhed yang ketara. Oleh itu, Python mengutamakan kelajuan masa jalan berbanding mesej ralat eksplisit dalam situasi ini.

Konsisten dengan Versi Python Terdahulu:

Tingkah laku yang diterangkan di sini adalah konsisten sepanjang versi Python, dating kembali ke 1.4. Ia merupakan ciri intrinsik pelaksanaan jujukan boleh ubah untuk mengendalikan pengubahsuaian lelaran dengan cara ini.

Atas ialah kandungan terperinci Mengapa Mengalih Keluar Elemen daripada Senarai Semasa Lelaran dalam Python Menghasilkan Keputusan yang Tidak Dijangka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan