python - 给定一个字符串,如何用每个重复的字母生成一个新字符串?
问题描述
给定这样的字符串:
a = 'monkeys'
b = 'hi how are you'
如何生成具有一个重复字符的相同字符串,例如:
mmonkeys
moonkeys
monnkeys
monkkeys
monkeeys
monkeyss
或者
hhi how are you
hii how are you
hi hhow are you
hi hoow are you
hi howw are you
hi how aare you
hi how arre you
hi how aree you
hi how are yyou
hi how are yoou
hi how are youu
我尝试使用 python 切片,例如第一种和最后一种情况:
a[:1]*1+a[:-1]+a[-1]
或者
a[:-1]+a[-1:]*2
但是,我想知道是否有更蟒蛇的方式来做到这一点?
解决方案
def repeat(chars, num=1):
return [chars[:index] + char * num + chars[index:] for index,char in enumerate(chars) if char != ' ']
repeat('monkeys', 1)
# ['mmonkeys', 'moonkeys', 'monnkeys', 'monkkeys', 'monkeeys', 'monkeyys', 'monkeyss']
repeat('monkeys', 2)
# ['mmmonkeys', 'mooonkeys', 'monnnkeys', 'monkkkeys', 'monkeeeys', 'monkeyyys', 'monkeysss']
repeat('hi how are you', 1)
# ['hhi how are you', 'hii how are you', 'hi hhow are you', 'hi hoow are you', 'hi howw are you', 'hi how aare you', 'hi how arre you', 'hi how aree you', 'hi how are yyou', 'hi how are yoou', 'hi how are youu']
推荐阅读
- python - 使用 python 3 打开 Clueweb warc 文件
- java - 这是关于 BatchErrorHandler 的 Spring-Kafka 文档中的错误吗?
- angular - Angular 7 - 如何分隔不同目录中的文件
- python-3.x - NaN 值作为 pyplot 散点图中的特殊颜色
- c++ - 是在堆上自动创建的特征矩阵吗?
- javascript - 模式未在 vue.js 中显示
- android - 尝试构建发布 apk 但收到 java.lang.OutOfMemoryError: GC 开销限制超出异常
- electron - 使用代码签名证书签署电子包时出错
- jenkins-groovy - 动态添加选择参数的 Groovy 代码
- reactjs - React 中类组件中的方法太多 - 问题重构