Esvaziar um dicionário em Python
-
Atribua
{}
para esvaziar um dicionário em Python -
Use a função
clear()
para remover todos os elementos de 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.