求助各位大神
求助各位大神:请问下边这两个代码有什么不同?两个不是同样是给变量赋值吗,为什么上边当list1变的时候list3也跟着变,而下边的当old变而new却不跟着变?list1 =
list3 = list1
list3
list1.sort()
list1
list3
old =
new = old
old =
print(new) 标签old原来指向的是这个地址,后来把old赋值给new,那么new指向的也是这个地址,所以现在指向的标签有两个,就是old和new;之后,把赋值给old,由于的的地址和的地址不同,所以标签old就改变了指向,改为指向这个地址,所以此时指向的标签就只有new了。所以把赋值给old,只是把标签old指向了一个新的地址(),并没有改变这个列表,所以原来指向这个列表的new也就没有变化。 本帖最后由 jackz007 于 2022-11-14 09:15 编辑
ist1 = # list1 指向列表对象
list3 = list1 # list3 也指向列表对象 ,【关键】:list1、list3 指向的是同一个列表对象。
list3
list1.sort() # 通过 list1 对列表对象 排序
list1 # list1 是经过排序的
list3 # 由于 list1、list3 指向的是同一个列表对象,所以,我们看到的 list3 也是经过排序的
list1 和 list3 指向了内存中的同一个列表对象,而不是各自对应一个自己的对象,是理解这道题的关键。
old = # old 指向列表对象
new = old # new 也指向列表对象
old = # old 指向了另一个列表对象
print(new) # new 依然指向列表对象 三个晾衣架 发表于 2022-11-14 08:36
标签old原来指向的是这个地址,后来把old赋值给new,那么new指向的也是这个地址,所 ...
懂了懂了,谢谢大神 jackz007 发表于 2022-11-14 09:10
list1 和 list3 指向了内存中的同一个列表对象,而不是各自对应一个自己的对象,是理解这道题的 ...
谢谢大神~
页:
[1]