Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Gelung Saya Gagal Mengalih Keluar Semua Vokal Daripada Rentetan?
Gelung "Lupa" untuk Mengalih Keluar Beberapa Item [pendua]
Dalam kod ini, kami bertujuan untuk mencipta fungsi anti_vokal yang menghapuskan semua vokal (aeiouAEIOU) daripada rentetan. Nampaknya berfungsi dengan betul, tetapi ia meninggalkan 'o' terakhir dalam teks sampel "Hey look Words!" (hasil: "Hy lk Words!").
Memahami Isu
Isu timbul daripada mengubah suai senarai yang anda ulangi. Setiap kali elemen dialih keluar, indeks elemen berikutnya berubah, menyebabkan beberapa dilangkau.
Penyelesaian: Salin Senarai
Untuk menyelesaikan masalah ini, buat salinan daripada senarai sebelum mengulanginya. Ini akan memastikan pengalihan keluar elemen tidak menjejaskan kedudukan orang lain.
for char in textlist[:]: #shallow copy of the list
Alternatif: Pemahaman Senarai
Pemahaman senarai menawarkan pendekatan yang lebih jelas dan mudah:
def remove_vowels(text): # function names should start with verbs! return ''.join(ch for ch in text if ch.lower() not in 'aeiou')
Dengan memanfaatkan sifat boleh lelar rentetan Python, pemahaman ini mencipta rentetan baharu yang mengecualikan vokal.
Atas ialah kandungan terperinci Mengapa Gelung Saya Gagal Mengalih Keluar Semua Vokal Daripada Rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!