Python字典的增删改查之字典添加元素

【Python字典的增删改查之字典添加元素】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

从上面看就知道字典是可变数据类型。

    推荐阅读