变量名是标签
>>> a = [1,2,3] >>> b = [] >>> b.append(a) >>> b [[1, 2, 3]] >>> a = [] >>> b [[1, 2, 3]] # a重新赋值后b没有改变 >>> >>> >>> c = [1,2,3] >>> d = [] >>> d.append(c) >>> d [[1, 2, 3]] >>> c[0] = 10 >>> d [[10, 2, 3]] # c修改后d改变了
Python的变量名是一个标签,在b.append(a)之后, a = []相当于将这个标签贴到了新的变量[]上,在d.append(c)之后,a[0] = 10是修改了a,所以d改变了。