所以我现在正试图找出 python 的一些复杂之处,只是为了抖动,并且我正在尝试将东西插入到我的字符串中。我想返回所有设置字母加倍的字符串的副本。我的字母是 l
m
n
q
t
所以我的金钱输出看起来就像 mmonney
这是来自不同尝试的代码,其中我删除了字母,我试图弄清楚如何更改它,所以我将列表中的字母加倍。有什么建议吗?
def double(str):
letters = ('l', 'm', 'n', 'q', 't')
for char in str:
if c.lower() in letters:
str = str.replace(c,"")
return str
最佳答案
请注意,使用如此多的 str 替换并不会使您的函数具有很强的可扩展性。
def double(word):
letters = ('l', 'm', 'n', 'q', 't')
return "".join([p*2 if p in letters else p for p in word])
一般来说,Python 中的字符串修改操作(以及相当多其他语言都很慢),因为字符串是不可变的。实际上,每次执行替换调用时,您都是从头开始创建一个全新的字符串。
另一方面,这里给出的方法是处理两个列表。追加到列表是一个快速的操作。
关于python - 如何插入双字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44015424/