Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengalih Keluar Item dengan Selamat daripada Senarai Semasa Mengulang dalam Python?

Bagaimanakah Saya Boleh Mengalih Keluar Item dengan Selamat daripada Senarai Semasa Mengulang dalam Python?

Barbara Streisand
Barbara Streisandasal
2024-12-28 10:45:12219semak imbas

How Can I Safely Remove Items from a List While Iterating in Python?

Pengalihan Keluar Item Semasa Lelaran Senarai

Apabila melelaran senarai dalam Python, ia mungkin menjadi perlu untuk mengalih keluar item tertentu berdasarkan kriteria tertentu . Walau bagaimanapun, percubaan untuk mengalih keluar item secara langsung dalam lelaran boleh mengakibatkan tingkah laku yang tidak dijangka. Di sinilah keperluan untuk kaedah alternatif timbul.

Pemahaman Senarai

Satu penyelesaian ialah menggunakan pemahaman senarai, yang membolehkan penciptaan senarai baharu yang mengandungi hanya elemen yang dikehendaki. Contohnya:

somelist = [x for x in somelist if not determine(x)]

Pemahaman ini mencipta senarai baharu yang merangkumi semua elemen somelist yang mana fungsi determine() dinilai kepada False.

Mutasi dengan Menghiris

Pendekatan lain ialah memutasi senarai sedia ada menggunakan kepingan. Dengan memberikan kepada somelist[:], senarai boleh diubah suai untuk mengandungi elemen yang boleh diterima sahaja:

somelist[:] = [x for x in somelist if not determine(x)]

Kaedah ini mengekalkan rujukan senarai asal, menjadikannya berguna apabila bahagian lain program perlu mengakses senarai diubah suai.

Itertools

Dalam Python 2 atau 3, itertools boleh digunakan untuk mencapai hasil yang sama. Dalam Python 2:

from itertools import ifilterfalse
somelist[:] = ifilterfalse(determine, somelist)

Dalam Python 3:

from itertools import filterfalse
somelist[:] = filterfalse(determine, somelist)

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengalih Keluar Item dengan Selamat daripada Senarai Semasa Mengulang dalam Python?. 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