233倔强不秃 发表于 2020-3-17 14:08:53

Python直接赋值,浅拷贝与深度拷贝的解析

本帖最后由 233倔强不秃 于 2020-3-17 14:28 编辑

问题来源:
14. 请问以下代码会打印什么内容?

list1 =
list2 =

dict1 = {'1':list1, '2':list2}
dict2 = dict1.copy()

dict1['1'] = 5

result = dict1['1'] + dict2['1']
print(result)
复制代码
A. 5
B. 6
C. 8
D. 10

15. 请问以下代码会打印什么内容?
import copy

list1 =
list2 =

dict1 = {'1':list1, '2':list2}
dict2 = copy.deepcopy(dict1)

dict1['1'] = 5

result = dict1['1'] + dict2['1']
print(result)
复制代码
A. 5
B. 6
C. 8
D. 10

这两道题的答案暂时不放出,先看下面的解析:

用一个例子来说话:
import copy
a = ] #原始对象

b = a                     #赋值,传对象的引用
c = copy.copy(a)            #对象拷贝,浅拷贝
d = copy.deepcopy(a)      #对象拷贝,深拷贝

a.append(5)               #修改对象a
a.append('c')            #修改对象a中的['a', 'b']数组对象

print( 'a = ', a )
print( 'b = ', b )
print( 'c = ', c )
print( 'd = ', d )

详细解析请看链接:
Python直接赋值,浅拷贝与深度拷贝的解析

一个账号 发表于 2020-3-17 14:24:13

建议写一行空一行,这样好看一点

233倔强不秃 发表于 2020-3-17 14:27:49

一个账号 发表于 2020-3-17 14:24
建议写一行空一行,这样好看一点

好的
页: [1]
查看完整版本: Python直接赋值,浅拷贝与深度拷贝的解析