Alterar a chave em um dicionário em Python

Najwa Riyaz 10 outubro 2023
  1. Atribuir nova chave e excluir a chave antiga em um dicionário em Python
  2. Use a função pop() em Python
  3. Percorrer o dicionário usando um loop for e alterar a chave em um dicionário em Python
  4. Reconstruir uma instância totalmente nova em Python
  5. Use a classe OrderedDict em Python
  6. Use a função Pandas.DataFrame em Python
Alterar a chave em um dicionário 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.

  1. Atribua uma nova chave à chave antiga.
  2. 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'}

Artigo relacionado - Python Dictionary