python中的直接赋值、浅拷贝和深拷贝很容易让人混淆。...1.赋值
a = ['zero', [1,2,3]]
b = a
2.浅拷贝(shallow copy)
import copy
c = copy.copy(a)
3.深拷贝(deep copy)
d...= copy.deepcopy(a)
当我们修改a的时候:
a.append('one')
a[1].append('4')
a[0] = 'ten'
a输出:
['ten', [1, 2, 3,...,是直接引用,b与a其实都指向同一个对象,所以当a改变时,b也随机改变;
浅拷贝的时候,a与c独立,但是子对象指向同一对象,a变化时,c列表的子列表[1,2,3]变成了[1,2,3,4];
深拷贝的时候...,完全拷贝a及其子对象,d与a独立,d不随a的变化而变化。