我正在尝试编写两个过程来替换python中字符串中的匹配字符串。 我必须写两个程序。
def matched_case(旧的新): .........
注意:输入是两个字符串,它返回一个替换转换器。
def replacement(x,another_string): ..........
注意:输入是前一过程的转换器和字符串。它返回将转换器应用于输入字符串的结果。
例如:
a = matched_case('mm','m')
print replacement(a, 'mmmm')
it should return m
另一个例子:
R = matched_case('hih','i')
print replacement(R, 'hhhhhhihhhhh')
it should return hi
我不知道如何使用循环来完成整个过程。非常感谢任何人都可以给出一个提示。
答案 0 :(得分:3)
def subrec(pattern, repl, string):
while pattern in string:
string = string.replace(pattern, repl)
return string
foo('mm', 'm', 'mmmm')
返回m
foo('hih', 'i', 'hhhhhhihhhhh')
返回hi
答案 1 :(得分:0)
下面的内容可能有所帮助:
def matched_case(x,y):
return x, lambda param: param.replace(x,y)
def replacement(matcher, s):
while matcher[0] in s:
s = matcher[1](s)
return s
print replacement(matched_case('hih','i'), 'hhhhhhihhhhh')
print replacement(matched_case('mm','m'), 'mmmm')
输出:
hi
m
matched_case(..)
返回替换转换器,因此最好使用lambda(匿名函数来表示)。这个匿名函数将字符串包装到找到的代码和实际替换它的代码。