|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- list1 = [1, 2]
- list2 = [3, 4]
- dict1 = {'1':list1, '2':list2}
- dict2 = dict1.copy()
- dict1['1'][0] = 5
- result = dict1['1'][0] + dict2['1'][0]
- print(result)
复制代码
这个是浅拷贝吧,那为什么答案不是6却是10呢?
- import copy
- list1 = [1, 2]
- list2 = [3, 4]
- dict1 = {'1':list1, '2':list2}
- dict2 = copy.deepcopy(dict1)
- dict1['1'][0] = 5
- result = dict1['1'][0] + dict2['1'][0]
- print(result)
复制代码
这个如果是深拷贝的话那这个的答案不应该是10吗?
明显是你理解反了。
浅拷贝 只拷贝 dict这一层,到了list那里的值它就不拷贝了
dict1 = {'1':list1, '2':list2}。
dict2 = dict1.copy() = {'1':list1, '2':list2}
dict2中list还是保存的引用
它们的list都是指向同一处值list1 = [1, 2] list2 = [3, 4],不管你使用dict1修改list中的值,还是dict2修改list中的值,改的都是同一个位置中的值。
深拷贝 dict和list都拷贝
dict1 = {'1':list1, '2':list2}。 list1 = [1, 2] list2 = [3, 4]
dict2 = copy.deepcopy(dict1) = {'1':[1, 2], '2': [3, 4]}。
dict1,dict2中的list都有各自的值
|
|