Alterar a chave em um dicionário em Python
- Atribuir nova chave e excluir a chave antiga em um dicionário em Python
-
Use a função
pop()
em Python -
Percorrer o dicionário usando um loop
for
e alterar a chave em um dicionário em Python - Reconstruir uma instância totalmente nova em Python
-
Use a classe
OrderedDict
em Python -
Use a função
Pandas.DataFrame
em Python
Este artigo apresenta vários métodos para alterar a chave em um dicionário em Python.
Atribuir nova chave e excluir a chave antiga em um dicionário em Python
Para alterar a chave em um dicionário em Python, siga estas etapas.
- Atribua uma nova chave à chave antiga.
- Exclua a chave antiga.
Verifique o exemplo abaixo, que demonstra essas etapas.
dict_ex[new_key] = dict_ex[old_key]
del dict_ex[old_key]
O código a seguir ilustra esse método.
dict_ex = {1: "January", 2: "Febuary", 3: "March"}
print("Old dictionary-", dict_ex)
dict_ex[2.1] = dict_ex[2]
del dict_ex[2]
print("New dictionary-", dict_ex)
Aqui, vemos que o valor da chave 2
é substituído pelo valor 2.1
. Observe como o par de valores-chave atualizado foi movido para o final do dicionário.
Produção:
Old dictionary- {1: 'January', 2: 'Febuary', 3: 'March'}
New dictionary- {1: 'January', 3: 'March', 2.1: 'Febuary'}
Use a função pop()
em Python
Para alterar a chave em um dicionário em Python, consulte as etapas a seguir.
-
Pop a chave antiga usando a função
pop
. Siga este exemplo.pop(old_key)
-
Atribuir uma nova chave para a chave antiga estourada. Siga este exemplo.
dict_ex[new_key] = dict_ex.pop(old_key)
O exemplo abaixo ilustra isso.
dict_ex = {1: "January", 2: "Febuary", 3: "March"}
print("Old dictionary-", dict_ex)
dict_ex[2.2] = dict_ex.pop(2)
print("New dictionary-", dict_ex)
Produção:
Old dictionary- {1: 'January', 2: 'Febuary', 3: 'March'}
New dictionary- {1: 'January', 3: 'March', 2.2: 'Febuary'}
Aqui, vemos que o valor da chave 2
é substituído pelo valor 2.2
. Observe como o par de valores-chave atualizado foi movido para o final do dicionário.
Percorrer o dicionário usando um loop for
e alterar a chave em um dicionário em Python
Para isso, você primeiro pega o dicionário de destino e outro dicionário contendo o novo valor-chave. Depois disso, você eventualmente muda todas as teclas de acordo com um loop for
.
dict_ex = {1: "Jan", 2: "Feb", 3: "Mar"}
print("Old dictionary-", dict_ex)
new_key_assign = {1: 111, 2: 2, 3: 3}
print("New dictionary-")
print(dict([(new_key_assign.get(key), value) for key, value in dict_ex.items()]))
Aqui, vemos que o valor da chave 1
é substituído pelo valor 111
. Observe como o par de valores-chave atualizado foi retido desta vez.
Produção:
Old dictionary- {1: 'Jan', 2: 'Feb', 3: 'Mar'}
New dictionary-
{111: 'Jan', 2: 'Feb', 3: 'Mar'}
Reconstruir uma instância totalmente nova em Python
No dicionário Python 3.7+, você pode preservar a ordem. Para isso, reconstrua uma instância inteiramente nova do dicionário da seguinte maneira.
dict_ex = {"old_key": "Jan", 2: "Feb", 3: "Mar"}
{"new_key" if k == "old_key" else k: v for k, v in dict_ex.items()}
Aqui está um exemplo que demonstra isso.
dict_ex = {1: "Jan", 2: "Feb", 3: "Mar"}
print({"one" if k == 1 else k: v for k, v in dict_ex.items()})
Aqui, vemos que o valor da chave 1
é substituído pelo valor one
. Observe como o par de valores-chave atualizado foi retido desta vez.
Produção:
{'one': 'Jan', 2: 'Feb', 3: 'Mar'}
Use a classe OrderedDict
em Python
No dicionário Python 3.7+, você pode preservar a ordem usando OrderedDict
junto com uma expressão geradora.
Observe que primeiro você precisa importar OrderedDict
de collections
. Em seguida, use a classe OrderedDict
.
from collections import OrderedDict
dict_ex = {"old_key": "Jan", 2: "Feb", 3: "Mar"}
OrderedDict(("new_key" if k == 1 else k, v) for k, v in dict_ex.items())
Aqui está um exemplo que você pode seguir.
from collections import OrderedDict
dict_ex = {1: "Jan", 2: "Feb", 3: "Mar"}
OrderedDict(("one" if k == 1 else k, v) for k, v in dict_ex.items())
Aqui, vemos que o valor da chave 1
é substituído pelo valor one
. Observe como o par de valores-chave atualizado foi retido desta vez.
Produção:
OrderedDict([('one', 'Jan'), (2, 'Feb'), (3, 'Mar')])
Use a função Pandas.DataFrame
em Python
Você pode usar o Pandas para alterar uma chave em um dicionário em Python. Em primeiro lugar, importe a biblioteca pandas
.
Em seguida, use o utilitário DataFrame
como segue.
import pandas as pd
old_dictionary = {"old_value": "Jan", 2: "Feb", 3: "Mar"}
new_dictionary = {"new_value": "Jan", 2: "Feb", 3: "Mar"}
df = pd.DataFrame([old_dictionary, new_dictionary])
Verifique este programa de exemplo.
import pandas as pd
dict_ex = {1: "Jan", 2: "Feb", 3: "Mar"}
print(dict_ex)
new_dict_ex = {11: "Jan", 2: "Feb", 3: "Mar"}
df = pd.DataFrame([dict_ex, new_dict_ex])
print(new_dict_ex)
Aqui, vemos que o valor da chave 1
é substituído pelo valor 11
. Observe como o par de valores-chave atualizado foi retido desta vez.
Produção:
{1: 'Jan', 2: 'Feb', 3: 'Mar'}
{11: 'Jan', 2: 'Feb', 3: 'Mar'}