python – 删除元音,除非它是单词的开头

python – 删除元音,除非它是单词的开头,第1张

概述我试图删除字符串中元音的出现,除非它们是单词开头.因此,例如像“男孩即将获胜”这样的输入应该输出Th.这是我迄今为止所拥有的.任何帮助,将不胜感激! def short(s):vowels = ('a', 'e', 'i', 'o', 'u')noVowel= stoLower = s.lower()for i in toLower.split(): if i[0] not in 我试图删除字符串中元音的出现,除非它们是单词的开头.因此,例如像“男孩即将获胜”这样的输入应该输出Th.这是我迄今为止所拥有的.任何帮助,将不胜感激!

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 – 删除元音,除非它是单词的开头所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1193295.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存