Complementando, alguns detalhes sobre as formas de remover.
Se a chave não existir, del
e pop
lançam uma exceção (KeyError
):
times = {"vasco da gama": "Rio de Janeiro",
"sport": "Recife",
"Palmeiras": "São Paulo"} # Cria o dicionário
del times["tabajara"] # KeyError (chave "tabajara" não existe)
# ou
times.pop("tabajara") # KeyError (chave "tabajara" não existe)
Mas o método pop
permite que se use um valor default, caso a chave não seja encontrada:
times = {"vasco da gama": "Rio de Janeiro",
"sport": "Recife",
"Palmeiras": "São Paulo"} # Cria o dicionário
removido = times.pop("tabajara", 'não tem') # chave "tabajara" não existe, então retorna "não tem"
print(removido) # "não tem"
Aliás, essa é outra diferença entre pop
e del
: o método pop
, além de remover, também retorna o valor removido.
times = {"vasco da gama": "Rio de Janeiro",
"sport": "Recife",
"Palmeiras": "São Paulo"} # Cria o dicionário
removido = times.pop("sport") # remove, e retorna o valor que foi removido
print(removido) # "Recife"
Já o del
não retorna nada, tanto que se fizer removido = del times['sport']
dará erro.
Por fim, popitem
também retorna o que foi removido, a diferença é que ele retorna uma tupla contendo a chave e o valor:
times = {"vasco da gama": "Rio de Janeiro",
"sport": "Recife",
"Palmeiras": "São Paulo"} # Cria o dicionário
removido = times.popitem()
print(removido) # ('Palmeiras', 'São Paulo')
E caso o dicionário esteja vazio, popitem
lança um KeyError
.
Para mais detalhes, consulte a documentação oficial da linguagem.