Cambiar la clave en un diccionario en Python

Najwa Riyaz 10 octubre 2023
  1. Asignar nueva clave y eliminar la clave anterior en un diccionario en Python
  2. Utilice la función pop() en Python
  3. Recorra el diccionario usando un bucle for y cambie la clave en un diccionario en Python
  4. Reconstruir una instancia completamente nueva en Python
  5. Utilice la clase OrderedDict en Python
  6. Utilice la función Pandas.DataFrame en Python
Cambiar la clave en un diccionario en Python

Este artículo presenta varios métodos para cambiar la clave en un diccionario en Python.

Asignar nueva clave y eliminar la clave anterior en un diccionario en Python

Para cambiar la clave en un diccionario en Python, siga estos pasos.

  1. Asigne una nueva llave a la antigua.
  2. Elimine la clave anterior.

Consulte el ejemplo a continuación, que demuestra estos pasos.

dict_ex[new_key] = dict_ex[old_key]
del dict_ex[old_key]

El siguiente código ilustra este 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)

Aquí, vemos que el valor de la clave 2 se reemplaza por el valor 2.1. Tenga en cuenta cómo el par clave-valor actualizado se ha trasladado al final del diccionario.

Producción :

Old dictionary- {1: 'January', 2: 'Febuary', 3: 'March'}
New dictionary- {1: 'January', 3: 'March', 2.1: 'Febuary'}

Utilice la función pop() en Python

Para cambiar la clave en un diccionario en Python, consulte los siguientes pasos.

  • Pop la vieja clave usando la función pop. Siga este ejemplo.
    pop(old_key)
    
  • Asignar una nueva clave a la vieja clave que apareció. Siga este ejemplo.
    dict_ex[new_key] = dict_ex.pop(old_key)
    

El siguiente ejemplo ilustra esto.

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)

Producción :

Old dictionary- {1: 'January', 2: 'Febuary', 3: 'March'}
New dictionary- {1: 'January', 3: 'March', 2.2: 'Febuary'}

Aquí, vemos que el valor de la clave 2 se reemplaza por el valor 2.2. Tenga en cuenta cómo el par clave-valor actualizado se ha trasladado al final del diccionario.

Recorra el diccionario usando un bucle for y cambie la clave en un diccionario en Python

Para esto, primero toma el diccionario de destino y otro diccionario que contiene el nuevo valor de clave. Después de eso, eventualmente cambia todas las teclas en consecuencia usando un bucle 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()]))

Aquí, vemos que el valor de la clave 1 se reemplaza por el valor 111. Tenga en cuenta cómo esta vez se ha conservado el par clave-valor actualizado.

Producción :

Old dictionary- {1: 'Jan', 2: 'Feb', 3: 'Mar'}
New dictionary-
{111: 'Jan', 2: 'Feb', 3: 'Mar'}

Reconstruir una instancia completamente nueva en Python

En el diccionario de Python 3.7+, puede conservar el orden. Para ello, reconstruya una instancia completamente nueva del diccionario de la siguiente manera.

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()}

Aquí hay un ejemplo que demuestra esto.

dict_ex = {1: "Jan", 2: "Feb", 3: "Mar"}

print({"one" if k == 1 else k: v for k, v in dict_ex.items()})

Aquí, vemos que el valor de la clave 1 se reemplaza por el valor one. Tenga en cuenta cómo esta vez se ha conservado el par clave-valor actualizado.

Producción :

{'one': 'Jan', 2: 'Feb', 3: 'Mar'}

Utilice la clase OrderedDict en Python

En el diccionario Python 3.7+, puede conservar el orden utilizando el OrderedDict junto con una expresión generadora.

Tenga en cuenta que primero debe importar OrderedDict de collections. Luego, use la clase 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())

Aquí tienes un ejemplo que puedes 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())

Aquí, vemos que el valor de la clave 1 se reemplaza por el valor one. Tenga en cuenta cómo esta vez se ha conservado el par clave-valor actualizado.

Producción :

OrderedDict([('one', 'Jan'), (2, 'Feb'), (3, 'Mar')])

Utilice la función Pandas.DataFrame en Python

Puede usar Pandas para cambiar una clave en un diccionario en Python. En primer lugar, importe la biblioteca pandas.

Luego, use la utilidad DataFrame de la siguiente manera.

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])

Consulte este programa de ejemplo.

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)

Aquí, vemos que el valor de la clave 1 se reemplaza por el valor 11. Tenga en cuenta cómo esta vez se ha conservado el par clave-valor actualizado.

Producción :

{1: 'Jan', 2: 'Feb', 3: 'Mar'}
{11: 'Jan', 2: 'Feb', 3: 'Mar'}

Artículo relacionado - Python Dictionary