copy.copy 浅复本 只复本父第一类,不能复本第一类的外部的子第一类。
copy.deepcopy 深复本 复本第一类或其子第一类
两个较好的范例:
import copy
a = [1, 2, 3, 4, [a, b]] #原初第一类
b = a #表达式,传第一类的提及
c = copy.copy(a) #第一类复本,浅复本
d = copy.deepcopy(a) #第一类复本,深复本
a.append(5) #修正第一类a
a[4].append(c) #修正第一类a中的[a, b]字符串第一类
print a = , a
print b = , b
print c = , c
print d = , d
输入结论:
a = [1, 2, 3, 4, [a, b, c], 5]
b = [1, 2, 3, 4, [a, b, c], 5]
c = [1, 2, 3, 4, [a, b, c]]
d = [1, 2, 3, 4, [a, b]]
下面两个范例可以看看:
1234567891011
import copy
a = [1, 2, 3, 4, [a, b]] #原初第一类
b = a #表达式,传第一类的提及
c =copy.copy(a) #第一类复本,浅复本
d = copy.deepcopy(a) #第一类复本,深复本
a.append(5) #修正第一类a
a[4].append(c) #修正第一类a中的[a, b]字符串第一类
print a = , a
print b = , b
print c = , c
print d = , d
然后自己想一想输入都应该是甚么
a是原初第一类,作为对照
b是a的提及,和a指向同两个第一类
c是a的两个浅复本,将a的内容复本过来了,就是和a平行的两个第一类了,但是里面元素如果是第一类,仅复本其提及,即a[4]变化后c[4]也对应变化了,因为他俩实际指向同两个第一类,而a和c指向不同的第一类
d则是从头到尾全部复本过来,就连里面的第一类也复本了一份,因此a[4]变化而d[4]没有变化,因为a[4]和d[4]在复本的时候值一样,但是其实已经是两个第一类了。
下面是上面内容的输入结论。
1234
a = [1, 2, 3, 4, [a, b, c], 5]
b =[1, 2, 3, 4, [a, b, c], 5]
c = [1, 2, 3, 4, [a, b, c]]
d = [1, 2, 3, 4, [a, b]]
以上便是小编对“Python的浅复本与深复本是甚么?有甚么区别?”的大致介绍,希望对您有所帮助!

