Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Gelung Saya Gagal Mengalih Keluar Semua Vokal Daripada Rentetan?

Mengapa Gelung Saya Gagal Mengalih Keluar Semua Vokal Daripada Rentetan?

Patricia Arquette
Patricia Arquetteasal
2024-12-11 01:52:13759semak imbas

Why Does My Loop Fail to Remove All Vowels From a String?

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!

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