如何将元音保留在字符串中所有单词的开头,但删除字符串的其余部分

时间:2017-02-09 14:53:58

标签: python-3.x

def shortenPlus(s) -> "s without some vowels":
    for char in s:
        if char in "AEIOUaeiou":
            return(s.replace(char,""))

我把它从整个字符串中删除了。但是我无法弄清楚如何将替换函数限制为除了字符串中每个单词的第一个字母之外的所有内容。

2 个答案:

答案 0 :(得分:0)

不确定您正在寻找什么,您能澄清一下,或许举个简单的例子吗?你的例子中的所有单词都不是以元音开头的!

但是在这里你可以删除一个单词中的所有元音,除了第一个单词的第一个元音。硬编码,但给你一个想法:

s="without some vowels"
for char in s[2:]:
    if char in "AEIOUaeiou":
        s=s.replace(char,"")
print(s)

输出

witht sm vwls

或者,要获取每个单词的第一个字符,您可以使用标记值,每次标记符号或空格等非字母字符时都会标记,然后保留下一个字符,但不保留其他字符。

s="without some vowels"
sent=2
for char in s:
if sent>0:
    sent-=1
    print(char)
    continue
if not char.isalpha():
    sent=2
    continue
s=s.replace(char,"")
print(output)

输出

w s v 

答案 1 :(得分:0)

def shortenPlus(s):
    counter = 0 # accepted character count
    add_the_vowel = True     # check if vowel came for the first time for the word
    temp = " "  # temp string to store the output
    for letter in s:
        if letter == " ":
            add_the_vowel= True
        if add_the_vowel == True and letter in "AEIOUaeiou":
            temp += s[counter]    # first vowel of the word
        if letter in "AEIOUaeiou":
            add_the_vowel = False    # restrict second vowel appeared
        else:
            temp += s[counter]
        counter += 1
    print(temp)
s = "without some vowels frienis"
shortenPlus(s)
  

如何将元音保留在字符串中所有单词的开头,但删除字符串的其余部分

输出

witht som vowls frins