Esvaziar um dicionário em Python

Elsie Dela Pena 10 outubro 2023
  1. Atribua {} para esvaziar um dicionário em Python
  2. Use a função clear() para remover todos os elementos de um dicionário em Python
Esvaziar um dicionário em Python

Este tutorial demonstrará como esvaziar um dicionário em Python.

Atribua {} para esvaziar um dicionário em Python

Uma solução simples para esvaziar um dicionário em python é atribuir {} a um dicionário.

Atribuir {} instancia um novo objeto e substitui o dicionário existente. Isso significa que uma nova referência na memória é atribuída para um novo dicionário e o espaço alocado na memória para o dicionário antigo que foi substituído é marcado para coleta de lixo.

dct = {"name": "John", "age": 23}

dct = {}

print("Dictionary contains:", dct)

Resultado:

Dictionary contains : {}

Use a função clear() para remover todos os elementos de um dicionário em Python

Outra abordagem é usar a função embutida no Python, clear(), que remove todo o conteúdo existente no dicionário. A função não tem parâmetros e não tem valor de retorno. Seu único objetivo é apenas limpar o conteúdo de um dicionário.

dict = {"name": "John", "age": 23}

dict.clear()

print("Dictionary contains :", dict)

Resultado:

Dictionary contains : {}

A diferença entre a atribuição da função {} e clear() é que a última não cria uma nova instância, mas remove todo o conteúdo do dicionário existente, bem como as referências do dicionário, porque o conteúdo é limpo.

Vamos comparar essas duas abordagens no mesmo caso de uso.

Usando a função incorporada, clear():

dict1 = {"name": "John", "age": 23}
dict2 = dict1

dict1.clear()

print("After using clear()")
print("Dictionary 1 contains :", dict1)
print("Dictionary 2 contains :", dict2)

Resultado:

After using clear()
Dictionary 1 contains : {}
Dictionary 2 contains : {}

Como você pode ver, dict1 e dict2 agora estão vazios.

Atribuindo o dicionário a {}:

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)

Resultado:

After assigning {}
Dictionary 1 contains : {}
Dictionary 2 contains : {'name': 'John', 'age': 23}

No exemplo acima, dict1 = {} criou um novo dicionário vazio, enquanto dict2 ainda aponta para o valor antigo de dict1, o que deixa os valores em dict2 inalterados. Nesse caso, a coleta de lixo não é acionada porque ainda há outra variável que faz referência ao dicionário.

Em resumo, usar {} para limpar todo o conteúdo de um dicionário cria uma nova instância em vez de atualizar a referência de dicionário existente. Se você tiver outro nome referindo-se ao mesmo dicionário, é melhor usar a função clear() para que todas as referências à mesma instância também sejam apagadas.

Artigo relacionado - Python Dictionary