def short(s):vowels = ('a','e','i','o','u')noVowel= stolower = s.lower()for i in tolower.split(): if i[0] not in vowels: noVowel = noVowel.replace(i,'') return noVowel解决方法 尝试:
>>> s = "The boy is about to win">>> ''.join(c for i,c in enumerate(s) if not (c in 'aeIoU' and i>1 and s[i-1].isAlpha()))'Th by is abt t wn'
这个怎么运作:
如果发电机的上述关键部分:
c for i,c in enumerate(s) if not (c in 'aeIoU' and i>1 and s[i-1].isAlpha())
发电机的关键部分是条件:
if not (c in 'aeIoU' and i>1 and s[i-1].isAlpha())
这意味着s中的所有字母都包含在内,除非它们不是(a)在s的开头,因此在一个单词的开头,或者(b)之前是非字母,这也意味着它们在一个词的开头.
重写为循环
def short(s): new = '' prior = '' for c in s: if not (c in 'aeIoU' and prior.isAlpha()): new += c prior = c return new总结
以上是内存溢出为你收集整理的python – 删除元音,除非它是单词的开头全部内容,希望文章能够帮你解决python – 删除元音,除非它是单词的开头所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)