Python:在字符串中添加字符的副本

3 投票
4 回答
5009 浏览
提问于 2025-04-17 16:57

我在想怎么在字符串中添加字符的复制,前提是这个字符是元音字母。比如,如果我输入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 += '!'

撰写回答