求助
old =new = old
old.sort()
print(old)
print(new)
输出:
old =
new = old
old =
print(old)
print(new)
输出:
为什么用sort方法,new跟着old改变,直接赋值new就不变了呢{:10_291:} 变量名更像是一个标签贴在数据上
old =
new = old
old.sort()
print(old)
print(new)
此时的old和new都指向同一个列表,list.sort()函数是对列表自身进行改变
old和new依旧指向这个列表,不是new跟着old改变,而是new和old都随着他们指向的数据改变
old =
new = old
old =
print(old)
print(new)
在这段代码中,old和new先是都指向同一个列表
而后old去指向了别的列表old=
此时new和old指向不同的列表,不再有任何关系了 old =
new = old
print(id(new))
print(id(old))
old.sort()
print(id(new))
print(id(old))
old =
print(id(new))
print(id(old))
print(old)
print(new)
old =
创建一个列表,old指向该列表
new = old 使得 new 也指向同一个列表
列表是可变对象,old.sort()使得该列表内进行排序,但列表本身不变
相当于有一个盒子,old.sort()相当于将盒子里杂乱的东西摆好了,可盒子还是那个盒子,你往盒子里面加东西还是拿东西出来,盒子始终在那,没变
而old 和 new 都指向该盒子(列表),所以old和new是一样的,相当于两个标签,都贴在这个盒子上,old和new都代表该盒子
而old = 这个语句,则使得old 这个标签从原来的盒子拿走贴到了另一个盒子上了
所以old 和 new代表的就是不同的盒子了
页:
[1]