import copy
a = [[1,2,3],1]
b = a
c = list(a)
# list(a), a[::], copy.cpoy(a) 效果一样
d = copy.deepcopy(a)
a[1] = 2
a[0][0] = 5
print(a, id(a), id(a[0]))
print(b, id(b), id(b[0]))
print(c, id(c), id(c[0]))
print(d, id(d), id(d[0]))

<!--more-->

输出:

[[5, 2, 3], 2] 2587165658752 2587165727680
[[5, 2, 3], 2] 2587165658752 2587165727680
[[5, 2, 3], 1] 2587162722240 2587165727680
[[1, 2, 3], 1] 2587165747392 2587165747456

总结

list(a), a[::], copy.cpoy(a) 只能复制第一层列表,copy.deepcopy(a) 则可以复制整个列表。