关于变量赋值
>>> list1 =>>> list2 = list1[:]
>>> list3 = list1
>>> list2
>>> list3
>>> list1.sort()
>>> list2
>>> list3
>>> list1 =
>>> print(list1)
>>> list2
>>> list3
请问为啥改变list1的顺序后 赋值给的list3会跟着改变 但是改变list1的内容以后 list3就不跟着变了呢 为啥啊不是说变量只是一个名字吗list1的都变成【0】了 按理说list3也会变啊 Python中变量名只是标签而已,一个内存块可以由多个标签指向它,当你修改内存块的内容,比如列表的sort函数或者append等操作时,所有标签的结果都会跟着变
但是你用赋值操作将某一个变量名指向另一块内存,那么它和原来的数据块再无瓜葛 楼上说的对,list1 和list3变量名都指向所在的地址空间,对它执行sort()操作时list1 和list3还是指向那里,当给list赋值时list1指向了所在的地址空间,但list3还是不变还是指向,不过它的值变了,但他是在再原来的地址上变,list3不管它什么变,我只要指向你,你是什么我的值就是什么(新手的理解,不对请指教)
页:
[1]