|
发表于 2019-11-4 23:50:32
|
显示全部楼层
本帖最后由 jackz007 于 2019-11-5 00:08 编辑
- >>> list1 = [1 , 3 , 2 , 9 , 7 , 8] # list1 指向列表 [1 , 3 , 2 , 9 , 7 , 8]
- >>> list2 = list1[:] # list2 指向列表 [1 , 3 , 2 , 9 , 7 , 8] 的副本,其实是另外新建了一个与 list1 完全相同的列表对象
- >>> list3 = list1 # list3 与 list1 一起指向列表 [1 , 3 , 2 , 9 , 7 , 8]
- # 至此,内存中一共有两个完全相同,却彼此独立的列表[1 , 3 , 2 , 9 , 7 , 8],
- # list1、list3 指向了一个,list2 指向了另一个
复制代码
通过内建函数 id() 可以证明变量与列表对象之间的隶属关系
- >>> id(list1)
- 17461120
- >>> id(list3)
- 17461120
- >>> id(list2)
- 17460880
复制代码
以 list1 为句柄,用列表的方法修改对象,list3 会同步改变,因为它们指向了相同的对象;同样的道理,list2 却维持原样,因为它指向另外一个对象:
- >>> list1 . sort()
- >>> list1
- [1, 2, 3, 7, 8, 9]
- >>> list3
- [1, 2, 3, 7, 8, 9]
- >>> list2
- [1, 3, 2, 9, 7, 8]
复制代码
|
|