在 Python 中清空字典
Elsie Dela Pena
2023年10月10日
本教程将演示如何在 Python 中清空字典。
在 Python 中分配 {}
来清空一个字典
在 Python 中清空字典的一个简单解决方案是将 {}
赋值给字典。
赋值 {}
会实例化一个新对象并替换现有字典。这意味着为新字典分配了内存中的新引用,并且为旧字典在内存中分配的空间被标记为垃圾回收。
dct = {"name": "John", "age": 23}
dct = {}
print("Dictionary contains:", dct)
输出:
Dictionary contains : {}
在 Python 中使用 clear()
函数来删除一个字典中的所有元素
另一种方法是使用 Python 中的内置函数 clear()
,该函数会删除字典中存在的所有内容。该函数没有任何参数,也没有返回值。它的唯一目的只是清除字典的内容。
dict = {"name": "John", "age": 23}
dict.clear()
print("Dictionary contains :", dict)
输出:
Dictionary contains : {}
赋值 {}
和 clear()
函数之间的区别在于后者不会创建新实例,而是会删除现有字典的所有内容以及字典的引用,因为它们已被清除。
让我们在相同的用例中比较这两种方法。
使用内置函数 clear()
:
dict1 = {"name": "John", "age": 23}
dict2 = dict1
dict1.clear()
print("After using clear()")
print("Dictionary 1 contains :", dict1)
print("Dictionary 2 contains :", dict2)
输出:
After using clear()
Dictionary 1 contains : {}
Dictionary 2 contains : {}
如你所见,dict1
和 dict2
现在为空。
将字典分配为 {}
:
dict1 = {"name": "John", "age": 23}
dict2 = dict1
# Assign {} removes only dict1 contents
dict1 = {}
print("After assigning {}")
print("Dictionary 1 contains :", dict1)
print("Dictionary 2 contains :", dict2)
输出:
After assigning {}
Dictionary 1 contains : {}
Dictionary 2 contains : {'name': 'John', 'age': 23}
在上面的示例中,dict1 = {}
创建了一个新的空字典,而 dict2
仍指向 dict1
的旧值,这使 dict2
值中的值保持不变。在这种情况下,不会触发垃圾回收,因为还有另一个引用字典的变量。
总之,使用 {}
清除字典中的所有内容将创建一个新实例,而不是更新现有字典引用。如果你有另一个名称引用同一字典,则最好使用 clear()
函数,以便也清除对同一实例的所有引用。