如何解决当list用于函数的参数时 Q.关于python 3中的内存堆栈和堆
def first(a):
cnt=0
if a[0]==1:
a[0]=0
else:
a[0]=1
for i in range(1,len(a)):
if a[i] != a[i - 1]:
continue
else:
if a[i - 1] == True:
a[i] = 0
else:
a[i] = 1
cnt += 1
return cnt
def second(a):
cnt=0
for i in range(1,len(a)):
if a[i] != a[i - 1]:
continue
else:
if a[i - 1] == True:
a[i] = 0
else:
a[i] = 1
cnt += 1
return cnt
def solution(A):
ans=first(A)
ans2=second(A)
return min(ans2,ans)
print(solution([1,1,1]))
嗨,我做了3个函数,我认为列表“ A”将存储在堆栈存储器中并复制函数“ first”的参数
但“第一次”运行后A发生了变化
(这意味着[1,1]更改为[1,1],因此当运行“ second”时,列表“ A”被置为[1 ,0,1] 不是原始列表“ A”([1,1]))
为什么会这样?
与此不同吗?
def swap(a,b):
tmp=a
a=b
b=tmp
def solution(a,b):
swap(a,b)
print(a,b)
solution(1,2) # answer is 1,2
在这种情况下,a,b不变
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。