|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
>>> list1 = [1, 3, 2, 9, 7, 8]
>>> list2 = list1[:]
>>> list2
[1, 3, 2, 9, 7, 8]
>>> list3 = list1
>>> list3
[1, 3, 2, 9, 7, 8]
>>> list1.sort()
>>> list1
[1, 2, 3, 7, 8, 9]
>>> list2
[1, 3, 2, 9, 7, 8]
>>> list3
[1, 2, 3, 7, 8, 9]
>>> old = [1, 2, 3, 4, 5]
>>> new = old
>>> old = [6]
>>> print(new)
[1, 2, 3, 4, 5]
这两段代码有什么不同,为什么第一段代码里list3会跟着list1一起变化,而第二段代码的new不会跟着old变化?
嗯嗯,老兄理解能力可以,差不多这意思,实际走一走看结果~
>>> #:
>>> old = [1,2,3,4,5]
>>> new = old #赋值
>>> print(id(new)) #查看new的内存地址,你可以理解为这个返回的ID是用来判断这个对象的唯一值
2612641471432
>>> print(id(old)) #这里可以和上面做对比,可以发现和new的ID是一致的。
2612641471432
>>> old = [6] #给OLD重新赋值
>>> print(id(new)) #此时NEW的ID并未做调整
2612641471432
>>> print(id(old)) #而OLD的ID已经变更了
2612641794376
>>> #做对比:
>>> old =[1,2,3,4,5,6]
>>> new = old
>>> print(id(new))
2612641564744
>>> print(id(old))
2612641564744
>>> old.append(6) #这里不采取赋值的方式,而是用append给old增加元素
>>> print(id(new))
2612641564744
>>> print(id(old)) #对比可以发现,通过append增加元素的,并不会改变ID。
2612641564744
>>> print(new)
[1, 2, 3, 4, 5, 6, 6]
|
|