欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python中的赋值与浅复制与深复制之间的关系

程序员文章站 2022-03-21 18:37:44
#赋值与浅复制一层列表 """a = [1, 2] b = a #赋值c = a.copy() #浅复制a.append(3) print(b) #父对象改变print(c) #父对象不变'''[1, 2, 3][1, 2]'''""" #赋值与浅复制二层列表 """a = [1,2,[1,2]] ......

#赋值与浅复制一层列表

"""
a = [1, 2]   
b = a   #赋值
c = a.copy() #浅复制
a.append(3)    
print(b)  #父对象改变
print(c)  #父对象不变
'''
[1, 2, 3]
[1, 2]
'''
"""

#赋值与浅复制二层列表

"""
a = [1,2,[1,2]]   
b = a #赋值
c = a.copy() #浅复制
a[-1].append(3)
a.append(3)
print(b)  #父对象该变 赋值
print(c)  #父对象该变 浅复制
'''
[1, 2, [1, 2, 3], 3]
[1, 2, [1, 2, 3]]
'''
"""

#浅复制与深复制一层列表

"""
import copy
a = [1, 2]
b = copy.copy(a) #浅复制
c = copy.deepcopy(a) #深复制
a.append(3)
print(b)  #父对象不变 浅复制
print(c)  #父对象不变 深复制
'''
[1, 2]
[1, 2]
'''
"""

#浅复制与深复制二层列表

"""
a = [1,2,[1,2]]   
b = copy.copy(a) #浅复制
c = copy.deepcopy(a) #深复制
a[-1].append(3)
print(b)    #父对象该变 浅复制
print(c)    #父对象不变 深复制
'''
[1, 2, [1, 2, 3]]
[1, 2, [1, 2]]
'''
"""

#一层列表中,赋值会改变父对象 ,浅复制和深复制不会改变父对象。
#二层列表中,赋值会改变父对象(内外都变),浅复制会改变内层父对象,深复制不会改变内层父对象。