【发布时间】:2021-03-17 21:47:59
【问题描述】:
我想替换字符串中出现的所有子字符串,但我不想使用替换方法。这只是学习兴趣。目前,实验使我想到了这一点:
def count_substrings_and_replace(string, substring, rpl=None):
string_size = len(string)
substring_size = len(substring)
rpl_size = len(rpl)
count = 0
for i in range(0, string_size + rpl_size):
if string[i:i + substring_size] == substring:
if rpl:
string = string[:i] + rpl + string[i + substring_size:]
count += 1
return count, string
我发现它不适用于rpl 的任何大小。
例如count_substrings_and_replace("aaaQaaa", "aaa", "dddddd")我有输出:
(2, 'ddddddQdddddd'),好的
但如果rpl 采用更大的尺寸,例如:count_substrings_and_replace("aaaQaaaQaaa", "aaa", "ddddddddd") 我有输出:
(2, 'dddddddddQdddddddddQaaa').
我该如何解决这个问题?
【问题讨论】:
-
在您的第一个输入示例中,我的输出是
(2, 'ddddddQdddddd'),代码相同 -
@etch_45 哦。是的,我的错。我现在就修复它
-
@etch_45 也许
for i in range(0, string_size * int(rpl_size/2)):会是好的解决方案?
标签: python string replace substring