关于python中List赋值的问题

学习python时,有发现如下问题,不是很明白其赋值原理,请各位帮忙解答一下,谢谢!
1.

img


如上代码

img

个人感觉"result"应该是“nameList”的初始数据,为什么将“nameList”数据修改后,“result”的数据也随之改变?
2.

img


如上代码

img

为什么“print(result)”的结果直接是“None”?

因为列表是引用数据类型,这是浅复制。
浅复制分析:python列表的浅复制对于列表中存在可变的可迭代对象如列表,集合,字典这样的存在也是引用的原对象的地址空间,所以会一同改变。对于列表中存在的数值型数据浅复制会直接创建新的地址空间用以保存。

python里所有数据都是引用类型,所以不能用传统的引用类型和值类型来说,但是原理类似
python里两种数据类型,分别是可变类型和不可变类型,其实就是对应传统的引用类型和值类型
其中list是可变类型
所以你修改了result的元素,就等同于修改了nameList的元素,它们都指向同一块内存
如果你只想获取值,并不想获取引用,那么可以这样写
result=nameList.copy()

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632