学习python时,有发现如下问题,不是很明白其赋值原理,请各位帮忙解答一下,谢谢!
1.
如上代码
个人感觉"result"应该是“nameList”的初始数据,为什么将“nameList”数据修改后,“result”的数据也随之改变?
2.
如上代码
为什么“print(result)”的结果直接是“None”?
学习python时,有发现如下问题,不是很明白其赋值原理,请各位帮忙解答一下,谢谢!
1.
个人感觉"result"应该是“nameList”的初始数据,为什么将“nameList”数据修改后,“result”的数据也随之改变?
2.
为什么“print(result)”的结果直接是“None”?
因为列表是引用数据类型,这是浅复制。
浅复制分析:python列表的浅复制对于列表中存在可变的可迭代对象如列表,集合,字典这样的存在也是引用的原对象的地址空间,所以会一同改变。对于列表中存在的数值型数据浅复制会直接创建新的地址空间用以保存。