copy方法和deepcopy函数
copy方法用于复制一个字典,该方法返回复制后的新字典。
dict = {
'a':20,'b':'hello','c':[1,2,3,4,5]}
#复制一个新的字典
newdict = dict.copy()
copy方法复制的字典只是浅复制,也就是说值复制第1层的字典数据。至于第2层及以下的所有层,原字典和新字典都指向同一个值,也就是说,不管是修改原字典中的这些元素,还是修改新字典中的这些元素,原字典和新字典中对应的元素都会同时改变。对于上面的代码,如果修改字典dict中key等于’a’或’b’的值,字典newdict中对应的值并不会发生改变,因为’a’和’b’的值都属于第1层(只是一个简单的数值或字符串),而不管修改哪一个字典中key为’c’的值,另外一个字典对应的值也都会改变。这里修改key为’c’的值并不是指替换整个列表([1,2,3,4]),而是修改该列表中的某个值,如将’4’修改成’20’。
如果要想改变这种情况,就需要使用copy模块中的deepcopy函数,该函数可以对序列进行更深层复制。
#导入copy模块中的deepcopy函数
from copy import deepcopy
dict = {
'a':20,'b':'hello'