在 Python 中清空字典

Elsie Dela Pena 2023年1月30日 2021年4月29日
  1. 在 Python 中分配 {} 来清空一个字典
  2. 在 Python 中使用 clear() 函数来删除一个字典中的所有元素
在 Python 中清空字典

本教程将演示如何在 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 : {}

如你所见,dict1dict2 现在为空。

将字典分配为 {}

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() 函数,以便也清除对同一实例的所有引用。

相关文章 - Python Dictionary