Python:在字符串中添加字符的副本
我在想怎么在字符串中添加字符的复制,前提是这个字符是元音字母。比如,如果我输入copy('app'),理想情况下它应该返回'aaaapp!'。我知道字符串是不可变的,但肯定有办法做到这一点!我已经盯着这个问题好几个小时了。
注意:我不想要代码的解决方案,最好只给我一个提示,让我朝正确的方向走。编辑:谢谢大家的帮助!
我想到的一个办法是:word += word + i*4,但这样返回的结果是'appaaaa!'。
def copy(word):
"('string') ==> ('string') Adds four copies of vowel and an '!' to the string"
vowel = 'aeiouAEIOU'
for i in word:
if i in vowel:
#Missing code Here
return word + '!'
4 个回答
3
关键在于创建一个新的字符串。如果字符不是元音字母,你就把它直接复制到新的字符串里。如果是元音字母,你就要把它复制四次到新的字符串里。最后,你返回这个新的字符串。下面是实现这个过程的一种方法:
def copy(word):
vowels = set ("AEIOUaeiou")
return "".join(char * 4 if char in vowels else char for char in word) + "!"
5
你可以很简单地使用 re.sub
这个方法:
>>> re.sub('([aeiouAEIOU])',r'\1\1\1\1','string')
'striiiing'
或者,如果你想让替换的次数可以变化的话:
>>> N=4
>>> re.sub('([aeiouAEIOU])',r'\1'*N,'string')
'striiiing'
2
在你查看输入内容的时候,另外创建一个字符串:
s = ''
for i in word:
if i in vowel:
s += i*4
else:
s += i
s += '!'