>>> import copy
>>> a = [[10], 20]
>>> b = a[:] #<---切片复制
>>> c = list(a) #<---构造函数
>>> d = a * 1 #<---乘一赋值
>>> e = a.copy() #<---copy方法
>>> f = copy.deepcopy() #<---deepcopy函数
>>> a.append(21)
>>> a[0].append(11)
>>> for i in (a,b,c,d,e,f):
... print(id(i),id(i[0]),i)
...
31174728 35438152 [[10, 11], 20, 21]
35446600 35438152 [[10, 11], 20]
35623816 35438152 [[10, 11], 20]
31175112 35438152 [[10, 11], 20]
35457736 35438152 [[10, 11], 20]
35457480 35457800 [[10], 20]
从以上可以看出,五种方式都可以得到一个新的列表,但是如果列表中含有列表,所有b, c, d, e四个新列表的子列表都是指引到同一个对象上。只有使用copy.deepcopy(a)方法得到的新列表f才是包括子列表在内的完全复制。