解决方案:在函数里对数组做一次深拷贝即可。
解释如下:
我们知道,在python函数中如果以可变数据类型作为形参,会出现问题
问题如下:
如果输入代码为
def dfs(a):
a.append(1)
return a
a=[]
print(dfs(a))
print(dfs(a))
print(dfs(a))
输出为:
[1]
[1, 1]
[1, 1, 1]
此处因为a是一个数组,数组属于可变类型,所以会出现这种问题。解决方法是在函数内对a进行一次深拷贝:
def dfs(a):
a=a.copy()
a.append(1)
return a
a=[]
print(dfs(a))
print(dfs(a))
print(dfs(a))
则输出变为:
[1]
[1]
[1]
解决了这个问题