1、单元素元组 (1,)而不是(1)
2、list的复制
>>> mylist=[1,2] >>> mylist2=mylist >>> mylist3=list(mylist) >>> mylist2[1]=3 >>> mylist2 [1, 3] >>> mylist [1, 3] >>> mylist3 [1, 2]
这里很明显,mylist2只是mylist的一个引用,所以修改mylist2,其实就是修改了mylist
mylist3则是一份新的拷贝
#浅拷贝概念
>>> mylist=[1,[1,2]] >>> mylist2=list(mylist) >>> mylist2 [1, [1, 2]] >>> mylist2[1][1]=5 >>> mylist2 [1, [1, 5]] >>> mylist [1, [1, 5]]
>>> mylist2[1]=[1,2,3]
>>> mylist
[1, [1, 5]]
>>> mylist2
[1, [1, 2, 3]]
这里有涉及到浅拷贝,因为mylist2[1]只是一个shallow copying,只复制了引用没有复制值
但是如果给mylist2[1]重新赋值,则就没有问题了