python中清空字典的两种方法及其差异

Grey

python中清空字典的两种方法及其差异

两种方法简单的示范

  • 方法1

dict_var = {}

  • 方法2

dict_var.clear()

测试效果

针对上面的两种方法,测试一下效果:

  • 赋值法

dict_var1 = {1: 123, 2: 234, 'c': 'asd2'}
print(dict_var1)
dict_var1 = {}
print(dict_var1)


运行效果:948_python中清空字典的两种方法极其差异_赋值

  • 对象处理方法调用

dict_var1 = {1: 123, 2: 234, 'c': 'asd2'}
print(dict_var1)
dict_var1.clear()
print(dict_var1)


运行效果:
948_python中清空字典的两种方法极其差异_方法调用_02
从效果看,两个效果一样。那么,两者的差异在哪里呢?接下来,针对这个做一个测试。

代码修改对比差异

  • 测试1:

dict_var1 = {1: 123, 2: 234, 'c': 'asd2'}
dict_var2 = dict_var1
dict_var1 = {}
print(dict_var1)
print(dict_var2)


运行效果: 948_python中清空字典的两种方法极其差异_方法调用_03

  • 测试2

dict_var1 = {1: 123, 2: 234, 'c': 'asd2'}
dict_var2 = dict_var1
dict_var1.clear()
print(dict_var1)
print(dict_var2)


运行效果: 948_python中清空字典的两种方法极其差异_python_04 从这个对比看,两者的效果其实不是等同的。

小结

两者的差异究竟在哪里呢?其实,通过查看对象的地址可以看得出来,第一个方法存在一个新的对象创建的过程,而第二种方法是在原来的对象基础上进行修改。这就是两种字典清空方法的主要差异。