|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1>>> d = {"小甲鱼":"千年王八,万年龟。"}
>>> e = d.copy()
>>> d["小甲鱼"] = "666"
求e变量
2>>> d = {"小甲鱼":{"数学":99, "英语":88, "语文":101}}
>>> e = d.copy()
>>> d["小甲鱼"]["语文"] = 100
求e变量
为什么习题1的变量没有变化,而习题2的e变量值发生了变化了呢
不是,因为 copy 是只复制了一层,而它第二层是可变对象的话,所有指向它的引用都是会跟着变的
你使用 深拷贝的话就不会出现这种问题:
>>> from copy import deepcopy
>>> d = {"小甲鱼":{"数学":99, "英语":88, "语文":101}}
>>> e = deepcopy(d)
>>> d["小甲鱼"]["语文"] = 100
>>> d
{'小甲鱼': {'数学': 99, '英语': 88, '语文': 100}}
>>> e
{'小甲鱼': {'数学': 99, '英语': 88, '语文': 101}}
>>>
|
|