从字符串Python中删除字符
发布时间:2020-12-20 12:33:48 所属栏目:Python 来源:网络整理
导读:我正在尝试编写一个函数来摆脱给定字符串中的元音,但它似乎没有按照它应该做的方式行事…… def anti_vowel(text): for c in text: if c in "aeiouAEIOU": no_vowel = text.replace(c,'') return no_vowelprint(anti_vowel('Hello World') 而不是打印 Hll Wr
我正在尝试编写一个函数来摆脱给定字符串中的元音,但它似乎没有按照它应该做的方式行事……
def anti_vowel(text): for c in text: if c in "aeiouAEIOU": no_vowel = text.replace(c,'') return no_vowel print(anti_vowel('Hello World') 而不是打印 Hll Wrld 它打印 Hell Wrld 谢谢(提前)帮助 解决方法
问题是no_vowel只有上次执行text.replace(c,”)的值.另一个问题是no_vowel只有在实际要删除的元音时才获取值;代码将在anti_vowel(‘vwllss’)上失败.此外,在调用str.replace()之前,您不必检查文本中是否包含字符.
这应该工作: def anti_vowel(text): for vowel in "aeiouAEIOU": text = text.replace(vowel,'') return text print(anti_vowel('Hello World')) 正如其他人指出的那样,另一种方法是以不同的方式编写代码: def anti_vowel(text): ''.join(c for c in text if c not in 'aeiouAEIOU') 请在’.join()中使用生成器表达式而不是列表推导;这样的列表理解会不必要地分配内存. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |