HOWTO · Python
Cambiar la clave en un diccionario en Python
Aprende a renombrar una o varias claves de un diccionario de Python conservando sus valores.
En esta página
Para cambiar una clave de un diccionario de Python, asigna su valor a la clave nueva y luego elimina la anterior. Usa dict.pop() si quieres recuperar el valor y eliminar la entrada antigua en una sola operación. Para realizar varios cambios o cambios condicionales, crea un diccionario nuevo a partir de un mapeo de claves antiguas a nuevas. Estos métodos conservan los valores asociados; elige uno según quieras actualizar el diccionario original o crear un resultado independiente.
Cambiar una clave asignando su valor a una clave nueva y eliminando la anterior
Una clave de diccionario no se modifica directamente. Para cambiar una sola clave, consulta el valor usando la clave antigua, asígnalo a la nueva y elimina la entrada anterior:
fruit = {"A": "Apple", "B": "Banana"}
fruit["C"] = fruit["B"]
del fruit["B"]
print(fruit)
Así, B cambia a C y se conserva el valor "Banana". La operación modifica el propio diccionario fruit. Si C ya existe, al asignarle un valor se reemplaza el que tenía; si eso puede afectar tus datos, comprueba que la clave de destino esté disponible.
Cambiar una clave con dict.pop()
dict.pop() elimina la clave indicada y devuelve su valor. Puedes asignar ese valor directamente a la clave nueva:
person = {"first_name": "John", "last_name": "Doe", "age": 30}
person["given_name"] = person.pop("first_name")
Después de la asignación, person contiene given_name con el valor que antes estaba asociado a first_name. Al igual que con la asignación directa, si given_name ya existe, su valor se reemplaza. Si es posible que la clave antigua no esté presente, proporciona un valor predeterminado a pop, por ejemplo, person.pop("first_name", None); de lo contrario, llamar al método con una clave inexistente genera un KeyError.
Cambiar una o más claves reconstruyendo un diccionario
Para cambiar varias claves o hacerlo de forma condicional, asigna a cada clave antigua su reemplazo en un mapeo y usa una comprensión de diccionario. Las claves que no estén en el mapeo permanecen igual:
original = {"a": 1, "b": 2, "c": 3}
key_mapping = {"a": "alpha", "b": "beta"}
renamed = {key_mapping.get(key, key): value for key, value in original.items()}
En este caso, renamed contiene alpha, beta y c con sus valores originales. La comprensión crea un diccionario nuevo, por lo que original sigue disponible sin esos cambios. Si dos claves de origen se asignan a la misma clave de destino, el valor asignado después en la comprensión reemplaza al anterior. Si necesitas conservar todos los valores, asegúrate de que el mapeo produzca claves distintas. Este método resulta especialmente útil cuando el cambio depende de una regla aplicada a cada clave o cuando hay que cambiar varios nombres conocidos a la vez. Antes de reconstruir el diccionario, revisa el mapeo si algunas claves podrían acabar con el mismo nombre.
También puedes usar este método para transformaciones condicionales: sustituye key_mapping.get(key, key) por una expresión que devuelva la clave deseada para cada elemento. La expresión debe ser determinista para los datos que procesas, y las claves resultantes deben ser hashables, como exige cualquier clave de diccionario.
Cambiar los nombres de columnas de un DataFrame cuando las claves representan datos tabulares
Si las claves de un diccionario son nombres de columnas de un conjunto de datos tabular, usa DataFrame.rename(columns=...) para cambiar esos nombres. Crear un DataFrame a partir de un diccionario no cambia las claves del diccionario original; crea un objeto tabular independiente. Por ejemplo, puedes escribir la operación así: df = df.rename(columns={"a": "alpha"}). Esto devuelve un DataFrame con la columna renombrada y deja intacto el diccionario de origen. Si necesitas obtener un diccionario a partir del resultado, elige una orientación explícita, como df.to_dict(orient="list") cuando los valores sean listas de columnas. Esta operación específica de Pandas requiere que Pandas esté disponible en tu entorno. Para diccionarios comunes, los métodos integrados de asignación, dict.pop() o comprensión evitan convertir la estructura de datos y suelen ser la opción más sencilla.