python将A赋值给C,为什么修改了C,A还会变
importtime#导入time库,方便阅读importnumpyasnp#导入numpy库,下面出现的np即numpy库A=[91,95,97,99]B=[92,93...
import time # 导入 time库,方便阅读import numpy as np # 导入 numpy库,下面出现的 np 即 numpy库A=[91, 95, 97, 99]B=[92, 93, 96, 98] C=A #新建一个序列,避免影像原数据C.extend(B) #把AB两列混在一起print('a{}, b{}, c{}' .format(A,B,C))#a[91, 95, 97, 99, 92, 93, 96, 98], b[92, 93, 96, 98], c[91, 95, 97, 99, 92, 93, 96, 98]
展开
2019-10-07
展开全部
应该说C与A都指向了那个列表,不信你用:
print(id(C),id(A))
看一下是不是同一个地址,也就是说它们指向了同一个列表(列表是可变对象),那么不论通过C还是通过A修改列表,都是一回事
但可用深拷贝来改变:
import copy
C = copy.deepcopy(A)
print(id(C),id(A)) #就不一样了,修改C,A不会再变了
print(id(C),id(A))
看一下是不是同一个地址,也就是说它们指向了同一个列表(列表是可变对象),那么不论通过C还是通过A修改列表,都是一回事
但可用深拷贝来改变:
import copy
C = copy.deepcopy(A)
print(id(C),id(A)) #就不一样了,修改C,A不会再变了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询