neste artigo vamos discutir 6 maneiras diferentes de excluir uma chave de um dicionário em python, ou seja,
- remover uma chave de um dicionário usando dict.pop().
- apague uma chave de um dicionário usando pop () e tente / except.
- Remova uma chave de um dicionário usando itens() & para loop.
- remover uma chave de um dicionário usando itens() & compreensão de dicionário.
- Remova uma chave de um dicionário usando del.
- apagar uma chave de um dicionário usando a palavra-chave del e tentar / excepto.
suponha que temos um dicionário de string e int ou seja
# Dictionary of strings and intword_freq_dict = {"Hello": 56, "at": 23, "test": 43, "this": 43}
agora queremos remover um item deste dicionário cuja chave é “at”. Há maneiras diferentes de fazer isso. Vamos explorá-los um a um,
Remova uma chave de um dicionário usando dict.pop()
na classe de dicionário Python fornece um método pop () para excluir um item do dicionário baseado na chave.
dictionary.pop(key)
- se a chave indicada existir no dicionário, então dict.pop () remove o elemento com a chave indicada e devolve o seu valor.
- se a chave indicada não existir no dicionário, então ele retorna o valor padrão dado.
- Se a chave não existir no dicionário e Nenhum valor Padrão é passado para o pop (), em seguida, ele irá lançar KeyError
Vamos eliminar um elemento da dict usando pop(),
key_to_be_deleted = 'this'# As 'this' key is present in dict, so pop() will delete# its entry and return its valueresult = word_freq_dict.pop(key_to_be_deleted, None)print("Deleted item's value = ", result)print("Updated Dictionary :", word_freq_dict)
Saída:
Deleted item's value = 43Updated Dictionary : {'Hello': 56, 'at': 23, 'test': 43}
Ele apagou o par de valores-chave de dicionário, onde a chave foi ‘este’ e também voltou para o seu valor.
- Python dict.método pop () explicado em detalhe
- Como remover várias chaves do dicionário durante a iteração?
Excluir uma Chave do dicionário, se existir utilizando pop()
O valor padrão no pop() é necessário, porque se a chave não estiver presente no dicionário e nenhum valor padrão é dado no pop (), em seguida, ele irá lançar keyError. Vamos excluir um elemento que não está presente no dicionário usando a função pop() e sem passar um argumento de valor padrão no pop () ou seja
key_to_be_deleted = 'where'word_freq_dict.pop(key_to_be_deleted)
erro:
KeyError: 'where'
If the given key in pop () function is not present in the dictionary and also default value is not provided, then pop() can throw KeyError. Então, para evitar esse erro, devemos sempre verificar se a chave existe no dicionário antes de tentar excluir usando o pop() função e sem qualquer valor padrão é
key_to_be_deleted = 'where'if key_to_be_deleted in word_freq_dict: word_freq_dict.pop(key_to_be_deleted)else: print(f'Key {key_to_be_deleted} is not in the dictionary')
Saída:
Key where is not in the dictionary
podemos também usar o try/except para tratar esse erro,
key_to_be_deleted = 'where'try: word_freq_dict.pop(key_to_be_deleted)except KeyError: print(f'Key {key_to_be_deleted} is not in the dictionary')
Saída:
Key where is not in the dictionary
Remover uma chave a partir de um dicionário, utilizando itens() & loop for
Iterar sobre a chave e filtrar a chave que precisa ser eliminado por exemplo,
# Dictionary of strings and intword_freq_dict = {"Hello": 56, "at": 23, "test": 43, "this": 43}key_to_be_deleted = 'at'new_dict = {}for key, value in word_freq_dict.items(): if key is not key_to_be_deleted: new_dict = valueword_freq_dict = new_dictprint(word_freq_dict)
Saída:
{'Hello': 56, 'test': 43, 'this': 43}
criamos um novo temporária dicionário e, em seguida, iterar sobre todos os pares de valor-chave do dicionário original. Durante a iteração, copiámos o par de valores-chave para o novo dicionário temporário apenas se a chave não for igual à chave a ser apagada. Uma vez terminada a iteração, copiámos o novo conteúdo temporário do dicionário para o dicionário original. Nesta abordagem não existe risco de erro-chave, etc.
Remover uma chave a partir de um dicionário, utilizando itens() & Dicionário Compreensão
Usando a lógica do exemplo anterior podemos filtrar o conteúdo do dicionário baseado em chave usando itens() & dicionário de compreensão,
word_freq_dict = {key: value for key, value\ in word_freq_dict.items()\ if key is not key_to_be_deleted}print(word_freq_dict)
Saída:
{'Hello': 56, 'test': 43, 'this': 43}
reiteramos mais de pares chave-valor do dicionário e construído um novo dicionário, usando o dicionário de compreensão. Mas excluímos o par onde a chave correspondia à chave a ser apagada. Então atribuímos este novo dicionário ao dicionário original. Ele deu um efeito que o item do dicionário é excluído com base na chave.
portanto, o benefício desta abordagem é que você não precisa se preocupar com o erro chave no caso da chave não existir no dicionário.
Remover uma chave a partir de um dicionário usando del
podemos usar o del instrução para remover um par chave-valor do dicionário com base na chave,
del dict
Primeiro, selecione o elemento a partir de um dicionário, passando chave no índice do operador e, em seguida, passá-lo para o del instrução. Se a chave está presente no dicionário, então ele irá excluir a chave e o valor correspondente do dicionário. Mas se a chave dada não está presente no dicionário, então ele irá lançar um erro, ou seja, KeyError.
vamos usá-lo para remover a chave do dicionário acima mencionado,
# Dictionary of strings and intword_freq_dict = {"Hello": 56, "at": 23, "test": 43, "this": 43}# Deleting an item from dictionary using deldel word_freq_dictprint(word_freq_dict)
resultado:
{'Hello': 56, 'test': 43, 'this': 43}
ele apagou o item do dicionário onde a chave estava “at”. Mas e se usarmos uma declaração del com uma chave que não existe no dicionário, então ela pode jogar KeyError. Por exemplo,
key_to_be_deleted = 'where'del word_freq_dict
resultado:
KeyError: 'where'
Portanto, devemos sempre verificar se a chave existe no dicionário antes de tentar eliminá-las utilizando o del palavra-chave para evitar o KeyError,
# If key exist in dictionary then delete it using del.key_to_be_deleted = 'where'if key_to_be_deleted in word_freq_dict: del word_freq_dictelse: print(f'Key {key_to_be_deleted} is not in the dictionary')
Saída:
Key where is not in the dictionary
a Exclusão de uma chave a partir de um dicionário usando del palavra-chave e tentar/exceto
Se nós não queremos um se verificar antes de chamar del, então podemos usar o try/except também. Vamos tentar apagar uma chave que não existe no dicionário e pegar o erro também usando tentativa / exceto,
# If key exist in dictionary then delete it using del.key_to_be_deleted = 'where'try: del word_freq_dictexcept KeyError: print(f'Key {key_to_be_deleted} is not in the dictionary')
resultado:
Key where is not in the dictionary
conclusão:
estas foram as 6 maneiras diferentes de remover uma chave de um dicionário em python.