python小记(二):python中“copy”的使用方法
python中“copy”的使用方法前言一、直接赋值、浅拷贝和深拷贝前言项目上的需要,要使用复制列表,发现的错误。一、直接赋值、浅拷贝和深拷贝直接赋值:a = [1,2,[3,4]]b = aprint("直接赋值:")print("a:",a)print("b:",b)print("第一次改变:")a[1] = 666print("a:",a)print("b:",b)print("第二次改变:
·
python中“copy”的使用方法
前言
项目上的需要,要使用复制列表,发现的错误。
一、直接赋值、浅拷贝和深拷贝
直接赋值:
a = [1,2,[3,4]]
b = a
print("直接赋值:")
print("a:",a)
print("b:",b)
print("第一次改变:")
a[1] = 666
print("a:",a)
print("b:",b)
print("第二次改变:")
a[2][0] = 777
print("a:",a)
print("b:",b)
输出:
直接赋值:
a: [1, 2, [3, 4]]
b: [1, 2, [3, 4]]
第一次改变:
a: [1, 666, [3, 4]]
b: [1, 666, [3, 4]]
第二次改变:
a: [1, 666, [777, 4]]
b: [1, 666, [777, 4]]
图解:
a和b指的同一个对象:
浅拷贝:
a = [1,2,[3,4]]
b = a.copy()
print("浅拷贝:")
print("a:",a)
print("b:",b)
print("第一次改变:")
a[1] = 666
print("a:",a)
print("b:",b)
print("第二次改变:")
a[2][0] = 777
print("a:",a)
print("b:",b)
输出:
浅拷贝:
a: [1, 2, [3, 4]]
b: [1, 2, [3, 4]]
第一次改变:
a: [1, 666, [3, 4]]
b: [1, 2, [3, 4]]
第二次改变:
a: [1, 666, [777, 4]]
b: [1, 2, [777, 4]]
图解:
a和b虽然指的不同对象,但是指同一个子对象:
深拷贝:
import copy
a = [1,2,[3,4]]
b = copy.deepcopy(a)
print("深拷贝:")
print("a:",a)
print("b:",b)
print("第一次改变:")
a[1] = 666
print("a:",a)
print("b:",b)
print("第二次改变:")
a[2][0] = 777
print("a:",a)
print("b:",b)
输出:
深拷贝:
a: [1, 2, [3, 4]]
b: [1, 2, [3, 4]]
第一次改变:
a: [1, 666, [3, 4]]
b: [1, 2, [3, 4]]
第二次改变:
a: [1, 666, [777, 4]]
b: [1, 2, [3, 4]]
图解:
a和b完全独立的两个对象:
更多推荐
已为社区贡献2条内容
所有评论(0)