共计 1029 个字符,预计需要花费 3 分钟才能阅读完成。
copy()办法所遵循的拷贝原理,既有深拷贝,也有浅拷贝。拿拷贝上面的字典 dict1 为例,
copy()办法只会对最表层的键值对进行深拷贝,也就是说,它会再申请一块内存用来寄存
{‘name’: ‘Tom’, ‘age’: 18, ‘love’: ‘python’, ‘ 数据库 ’: [‘mysql’, ‘sqlite’, ‘3.redis’]};
而对于某些列表类型的值来说,此办法对其做的是浅拷贝,也就是说,dict2 中的 [‘mysql’, ‘sqlite’, ‘3.redis’] 的值不是本人独有,而是和 dict1 共有。
dict1 = {'name': 'Tom', 'age': 18, 'love': 'python', '数据库': ['mysql', 'sqlite', '3.redis']}
dict2 = dict1.copy()
dict1['web'] = 'Python 自学网'
print(dict1)
print(dict2)
dict1['数据库'].remove('mysql')
print(dict1)
print(dict2)
返回后果:
{'name': 'Tom', 'age': 18, 'love': 'python', '数据库': ['mysql', 'sqlite', '3.redis'], 'web': 'Python 自学网'}
{'name': 'Tom', 'age': 18, 'love': 'python', '数据库': ['mysql', 'sqlite', '3.redis']}
{'name': 'Tom', 'age': 18, 'love': 'python', '数据库': ['sqlite', '3.redis'], 'web': 'Python 自学网'}
{'name': 'Tom', 'age': 18, 'love': 'python', '数据库': ['sqlite', '3.redis']}
除此之外咱们再来看看字典是不是可变数据类型
dict3 = {'name': 'Tom', 'age': 18, 'love': 'python'}
print(dict3, id(dict3))
dict3['love'] = 'python'
print(dict3, id(dict3)) # id 不变,阐明字典可变
返回后果:
{'name': 'Tom', 'age': 18, 'love': 'python'} 34693248
{'name': 'Tom', 'age': 18, 'love': 'python'} 34693248
从下面看就晓得字典是可变数据类型。
正文完