[英]Python: Adding Copies of a Character in a String
我试图找出如何在字符串中添加字符的副本,只要字符是元音。 例如,如果我输入单词copy('app'),理想情况下它将返回'aaaapp!'。 我知道字符串是不可变的,但必须有一种方法! 我一直盯着这几个小时。
注意:我不想要我的代码解决方案,最好只是提示让我朝着正确的方向前进。 编辑:感谢您的帮助!
我的一个想法是:单词+ =单词+ 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 + '!'
你可以很容易地使用re.sub
:
>>> re.sub('([aeiouAEIOU])',r'\1\1\1\1','string')
'striiiing'
或者,如果您希望替换数量可变:
>>> N=4
>>> re.sub('([aeiouAEIOU])',r'\1'*N,'string')
'striiiing'
关键是要创建一个新字符串。 如果角色不是元音,则只需将其复制到新字符串即可。 如果它是元音,则将其四个副本复制到新字符串。 然后返回新字符串。 这是一种方法:
def copy(word):
vowels = set ("AEIOUaeiou")
return "".join(char * 4 if char in vowels else char for char in word) + "!"
扫描输入时撰写单独的字符串:
s = ''
for i in word:
if i in vowel:
s += i*4
else:
s += i
s += '!'
您可以将字符串的每个字符复制到列表中,在闲暇时插入元音,然后将列表连接回字符串:''。join(mylist))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.