码迷,mamicode.com
首页 > 编程语言 > 详细

Python中深拷贝与浅拷贝区别

时间:2017-10-26 16:14:24      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:ges   拷贝   一个   元素   img   pen   blog   浅拷贝   logs   

浅拷贝,

list值是可变的,str值不可变,只能重新赋值

a=b=c=‘wjx‘
print(a,b,c)
c= ‘jmy‘#重新赋值了,所以内存分配了新的地址
print(a,b,c)
print(id(a))
print(id(b))
print(id(c))

技术分享

 

# 浅拷贝:
# a与b的指向的是一个内存地址,这个内容地址中存放着a与b的值,所以当a中元素变了,b的也跟着变了
a=b=[1,2,3]
a[2]=8
b.append(4)
print(a,b)
#深拷贝:a和b是分配了两块内存地址的,所以互不影响
import copy
a1=[13,[4,5,6]]
b1=copy.deepcopy(a1)
a1[-1].append(7)
print(b1)
print(a1)
print(id(a1))
print(id(b1))

 

Python中深拷贝与浅拷贝区别

标签:ges   拷贝   一个   元素   img   pen   blog   浅拷贝   logs   

原文地址:http://www.cnblogs.com/niuniu2018/p/7724778.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!