我试图使用递归函数编写字符串匹配程序。该函数首先创建一个名为 tuple1 的空列表来添加点。然后它返回列表。但是,当我尝试两次使用此函数时,该函数会将点添加到在上一个函数中创建的列表。为什么函数在第二次调用中不使用默认值 tuple1 = []?任何想法??
程序输出:
[0, 3, 5, 9, 11, 12, 15, 19]
[0, 3, 5, 9, 11, 12, 15, 19, 0, 5, 15]
顺便说一句,这是麻省理工学院共享的开放课件的作业。
def subStringMatchExact(target, key, counter=0, tuple1=[]):
if len(target) < len(key):
return tuple1
else:
counter += 1
if target[:len(key)] == key:
tuple1.append(counter-1)
return subStringMatchExact(target[1:], key, counter, tuple1)
print(subStringMatchExact("atgacatgcacaagtatgcat", "a"))
print(subStringMatchExact("atgacatgcacaagtatgcat", "atg"))
慕田峪4524236
白衣染霜花
汪汪一只猫
相关分类