程序必须用参数中给出的数字替换列表中的两个数字。我无法更改参数,但我也可以创建其他功能。另外我必须使用递归。到目前为止,我想出了如何用递归进行替换,但我对计数感到困惑。每次我尝试的时候,我都无法用'y'代替头两次出现'x',而是总是用'y'代替每个'x'。 编辑:而我不能使用全局变量。如何向递归函数添加计数器? [Python]
def replaceFirstTwo(x,y,lst):
if lst == []:
return []
else:
if lst[0] == x:
return [y] + replaceFirstTwo(x,y,lst[1:])
else:
return [lst[0]]+ replaceFirstTwo(x,y,lst[1:])
正确的结果应该是这样的:
replaceFirstTwo(1,2,[5,1,2,3,1,1])
[5, 2, 2, 3, 2, 1]