【发布时间】:2019-11-15 21:08:02
【问题描述】:
我正在尝试编写一个用户定义的函数,以在不使用 python 中的 replace() 函数的情况下用另一个字符串替换所有出现的子字符串。 find_sub() 是一个用户定义的函数,它返回您要查找的子字符串的起始索引。 我已经尝试了以下代码,但它没有终止。
def replace_sub(original_str, old_sub, new_sub):
if find_sub(original_str, old_sub) == -1:
print("Cannot replace this!")
return -1
else:
substrings = []
initial_pos = 0
final_pos = find_sub(original_str, old_sub)
while True:
if final_pos == -1:
part = original_str[initial_pos:]
substrings.append(part)
break
part = original_str[initial_pos:final_pos]
substrings.append(part)
initial_pos = final_pos + len(old_sub)
final_pos = find_sub(original_str[initial_pos:], old_sub)
replaced_str = ""
for part in substrings:
replaced_str = part + new_sub
return replaced_str
【问题讨论】:
-
find_sub是什么? -
find_sub 是一个用户定义的函数,它与python中的find()函数做同样的事情,返回一个正在寻找的子字符串的起始索引。
标签: python python-3.x string replace