我需要在python中找到字符串的第一个元音,我是初学者。我已经指示将第一个元音之前的字符移动到单词的结尾并添加“-ay”#39;。例如" big"成为" ig-bay"和"字符串"成为流浪者" (基本上是普通的)。
这是我到目前为止所做的:
def convert(s):
ssplit = s.split()
beginning = ""
for char in ssplit:
if char in ('a','e','i','o','u'):
end = ssplit[char:]
strend = str(end)
else:
beginning = beginning + char
return strend + "-" + beginning + "ay"
我需要找到一种方法来阻止"如果"在找到第一个元音之后寻找更多元音的声明 - 至少我认为这是问题所在。谢谢!
答案 0 :(得分:1)
一次分解一步。
你的第一个任务是找到第一个元音。让我们这样做:
def first_vowel(s):
for index, char in enumerate(s):
if char in 'aeiou':
return index
raise Error('No vowel found')
然后你需要使用第一个元音来分割你的单词:
def convert(s):
index = first_vowel(s)
return s[index:] + "-" + s[:index] + 'ay'
然后测试一下:
print(convert('pig'))
print(convert('string'))
完整代码,可运行,在这里:https://repl.it/Dijj
对于没有元音的单词,异常处理留作练习。
答案 1 :(得分:0)
在您希望for循环结束的地方添加break
:https://docs.python.org/2/tutorial/controlflow.html
答案 2 :(得分:0)
Python有循环控制的break
和continue
语句。您可以设置触发的布尔值:
if flag:
break
#do code
#set flag
答案 3 :(得分:0)
您可以在找到元音后立即使用df$new_column <- as.numeric(grepl("Disagree", df$Response))
语句。
您也不需要使用任何break
函数。
你犯的一个大错误就是使用split()
来获取char
。您需要使用该char的索引来获取SubString
。
看看这个:
SubString
答案 4 :(得分:0)
旁注。你可以使用正则表达式:
>>> import re
>>> cases=['big','string']
>>> for case in cases:
... print case+'=>', re.sub(r'^([^aeiou]*)(\w*)', '\\2-\\1ay', case)
...
big=> ig-bay
string=> ing-stray