程序必須用參數中給出的數字替換列表中的兩個數字。我無法更改參數,但我也可以創建其他功能。另外我必須使用遞歸。到目前爲止,我想出瞭如何用遞歸進行替換,但我對計數感到困惑。每次我嘗試的時候,我都無法用'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]