当我编写递归函数来就地反转列表时,我遇到了以下问题。我可以更改输入参数。
def reverse_string(s):
if len(s) <= 1:
return
else:
s[0], s[-1] = s[-1], s[0]
reverse_string(s[1:-1])
s = ['A','B','C','D','E','F']
reverse_string(s)
print(s)
输出是
['F', 'B', 'C', 'D', 'E', 'A']
看起来我在递归中所做的更改在递归调用返回后被回滚。我不明白为什么。有人可以帮忙吗?