2015-10-10 6 views
1

Я попытался определить функцию, которая удаляет гласные из строки. В строке 4 была обнаружена ошибка, которая гласит: «Объект TypeError: 'unicode' не поддерживает назначение элемента". Не могли бы вы объяснить простым языком, что это за ошибка и как ее исправить?функция для удаления гласных из строки

def del_vowel(text): 
    for i in range(len(text)): 
     if text[i].lower() in ['a','e','i','o','u']: 
      text[i] = "" 
    return text 
text = raw_input('> ') 
print del_vowel(text) 
+0

строки неизменен в питоне – styvane

ответ

0

Строки неизменяемые объекты, которые вы не можете изменить их в-place.Instead вы можете использовать str.replace удалить символы:

text.replace(character, "") 

Также в вашем коде вам не нужно использовать range, так как строки итерируются, вы можете перебирать строку и проверять наличие каждого символа в списке гласных.

def del_vowel(text): 
    for i in text: 
     if i.lower() in ['a','e','i','o','u']: 
      text.replace(i,"") 
    return text 

Но более вещий образом, вы можете использовать str.translate, чтобы удалить какой-то символ из вашей строки.

Прочитайте следующий вопрос для получения дополнительной информации: Remove specific characters from a string in python

0

Однострочного использованием Generator Expressions:

"".join([char if char not in ['a','e','i','o','u'] else "" for char in text]) 
Смежные вопросы