在 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