关于列表的问题
>>> old =>>> new = old
>>> old =
>>> print(new)
各位大佬,为什么这个最终会打印出呀?为什么不是呢?
求解!萌新在这谢过各位大佬了~ 第二步定义new为 第三行代码重新定义了old却没有定义new old=
old=
new=old
print(new)
这里即相当于new 赋值为old
但是new 它不是oid , 只能说是拷贝
当new变化时 , old不会影响 , 因为id 不一样了>>> old =
>>> new = old
>>> id(old)
2004529505216
>>> id(new)
2004529505216
>>> new =
>>> id(new)
2004562592960
>>> 通俗易懂的讲一下
python的变量就像是个标签贴在数据上
有个人叫old,管理大仓库
old =
某一天,领导把儿子new下派下来跟你管理同一个大仓库,此时你们都是大仓库的管理员
new = old
又过了一段时间,你因为左脚先进门而被处罚,调到了小仓库当管理员
old =
从此以后,说到new大家都知道他是大仓库管理员,而说到old,大家就只知道他是小仓库管理员了
逃兵 发表于 2021-8-6 15:00
通俗易懂的讲一下
python的变量就像是个标签贴在数据上
>>> list1 =
>>> list2 = list1[:]
>>> list2
>>> list3 = list1
>>> list3
>>> list1.sort()
>>> list1
>>> list3
谢谢大佬的解答,那为什么这样写,list3又会跟着list1一起改变呢? supermanmimi 发表于 2021-8-6 15:02
>>> list1 =
>>> list2 = list1[:]
>>> list2
list.sort()操作是对列表本身去做的改变
list1和list3实际上都指向这个数据
list1和list3都会随着它而变
打个比方
list1是的管理员
list1 =
list3是被下派下来跟list1共同管理
list3 = list1
此时list1对仓库做了一些更改
list1.sort()
由于这个仓库是list1和list3共同管理的,所以改变了list1相当于改变了list3 逃兵 发表于 2021-8-6 15:09
list.sort()操作是对列表本身去做的改变
list1和list3实际上都指向这个数据
list1和list3都会随着它 ...
谢谢大佬!通俗易懂,我悟了,感谢。 supermanmimi 发表于 2021-8-6 17:06
谢谢大佬!通俗易懂,我悟了,感谢。
不用客气,弄清楚了就好{:10_297:}
页:
[1]