标签:python list 再谈 修改 复制 y1 x1 id
由于python的特殊机制,在函数中使用list类型的参数时,实际上虚参与实参是通过地址传递的,即修改虚参的值,实际上就修改了实参的值,非常危险,所以尽量不要修改虚参的值。
在应用中还应该注意,不可以通过等号赋值(所谓浅复制)方式来隔断对虚参的修改,必须通过重新构建list的方式进行赋值(即所谓深复制)。
x1=[1,2] y1=x1 #浅复制, print(id(x1),id(y1)) #此时x1,y1地址相同 y1.append(0) #此时x1,y1均为[1,2,0] y1=[i for i in x1] #深复制,利用列表推到式,很方便 print(id(x1),id(y1)) #此时x1,y1地址不同相同 y1.append(0) #此时x1为[1,2],y1为[1,2,0]
标签:python,list,再谈,修改,复制,y1,x1,id 来源: https://www.cnblogs.com/imhuanxi/p/11222878.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。