繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM