Я прочитал несколько сообщений об этом пропуске символа при удалении, но не нашел решения
Я пытаюсь создать программу против гласных в python 2.7, но застрял в нескольких точках.!!
- Как и в моей программе, я сделал копию списка, чтобы перебрать его, чтобы я мог удалить гласные из исходного списка, если они найдены в глобально определенном списке гласных, но он пропускает символы!! (Возможно, из-за увеличенного индекса)
- При работе с нижней функцией моя программа иногда выдает ошибку индекса присваивания списка вне диапазона!!. Это что-то связанное с распределением памяти или что-то еще. (Потому что, когда я удалил его, программа работала хорошо !!)
Пожалуйста, помогите сделать это правильно.
Код:
import copy
vowels=['a','e','i','o','u'] # Making list of vowels
#Function for anti_vowel
def anti_vowel(text):
new_list=list(text) # Converting it into list
new_list_copy=copy.deepcopy(new_list) # Copying the list to iterate
res="" # For converting back to string
for index, j in enumerate(new_list_copy):
m = j.lower() # Converting it into a lower-case for comparison
if m in vowels:
del(new_list[index]) # Deleting if a vowel is in list(HERE IS THE PROBLEM)
return res.join(new_list)
print anti_vowel("HeEY lOok Word!")
P.S: я заставил это работать, заменив функцию DELETE добавлением в новый список:
if j.lower() not in vowels:
x.append(j) #x is a new list
НО ТРЕБУЕТСЯ РЕШЕНИЕ С ФУНКЦИЕЙ УДАЛЕНИЯ
Заранее спасибо!!