首页 > 编程语言 > 详细

再谈python的list类型参数及复制

时间:2019-07-21 22:51:48      阅读:88      评论:0      收藏:0      [点我收藏+]

由于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类型参数及复制

原文:https://www.cnblogs.com/imhuanxi/p/11222878.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!