Convertir una cadena en nombre de variable en Python
-
Convertir cadena en nombre de variable usando
globals()
ylocals()
en Python -
Convertir cadena en nombre de variable usando
exec()
en Python
En Python, hay varias formas en las que podemos convertir un valor de cadena en un nombre de variable. En este artículo, discutiremos varias formas en las que podemos lograrlo.
Algunas personas pueden querer hacer esto para definir un nombre de variable dinámicamente mientras el programa Python está en ejecución. No se recomienda convertir una cadena en un nombre de variable utilizando las formas que se muestran a continuación mientras se desarrolla software listo para producción porque esto puede causar algunos problemas. Sí, es posible lograrlo, pero tenga cuidado al hacerlo.
Convertir cadena en nombre de variable usando globals()
y locals()
en Python
globals()
La función globals()
en Python devuelve el diccionario de la tabla de símbolos global actual. Una tabla de símbolos globales almacena toda la información relacionada con el alcance global del programa, a la que se puede acceder mediante la función globals()
.
user_input = input("Enter string for variable name: \n")
globals()[user_input] = 50
print(apple)
print(type(apple))
Producción:
Lo primero que estamos haciendo aquí es tomar la entrada del usuario usando la función input()
y pasar una cadena Enter a string for a variable name:
dentro de ella. Entonces, sea cual sea el valor que ingrese un usuario, ese valor se almacenará dentro de la variable user_input
. Aquí, esperamos que el usuario ingrese apple
como un valor de cadena que luego se almacenará dentro de user_input
. Si el usuario ingresa un valor que no sea apple
, el programa mostrará un error como NameError: name 'variable' is not defined
. Es porque también estamos imprimiendo el valor de apple
y luego comprobando el tipo más adelante en nuestro código.
Si el usuario ha introducido el valor correcto, podemos modificar el diccionario global usando globals()
para modificar el diccionario global y asignar cualquier valor a la variable apple
. Aquí, hemos asignado 50
a la variable apple
.
locales()
La función locals()
en Python devuelve el diccionario de la tabla de símbolos local actual. Se puede acceder a una tabla de símbolos locales con la ayuda de la función locals()
. La función locals()
funciona casi de la misma forma que la función globals()
. La única diferencia es que locals()
puede acceder a la tabla de símbolos local y globals()
puede acceder a la tabla de símbolos global y devuelve un diccionario.
user_input = input("Enter string for variable name: \n")
locals()[user_input] = 50
print(apple)
print(type(apple))
Producción:
Este código también funciona de la misma forma que el de globals()
. La única diferencia es que hemos utilizado la función locals()
aquí.
Convertir cadena en nombre de variable usando exec()
en Python
Otra forma de hacer esto es usando la función exec()
en Python. La función exec()
se utiliza para ejecutar el programa Python de forma dinámica. Tenemos una variable name
dentro de la cual estamos almacenando un valor de cadena Elon
.
name = "Elon"
exec("%s = %d" % (name, 100))
print(Elon)
Producción :
100
Dentro de la función exec()
, tenemos %s
y %d
, que se utilizan como marcador de posición para el valor de cadena y el valor decimal, respectivamente. Significa que asignamos un valor entero a una cadena con la ayuda del operador de asignación =
. Tanto %s
como %d
se incluyen entre las comillas =
. Luego tenemos un paréntesis dentro del cual tenemos 2 cosas, la primera es la variable que hemos creado es decir, name
, que contiene el valor Elon
, y la segunda tenemos un número entero 100
.
Aquí, en lugar de la variable name
, se sustituirá el valor dentro de esa variable. El entero 100
se asignará a Elon
. Elon
se convierte en un nombre de variable, y si lo imprime, obtendrá 100
como resultado.
Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.
LinkedInArtículo relacionado - Python String
- Eliminar comas de cadena en Python
- Cómo comprobar si una cadena está vacía de forma ptónica
- Cómo eliminar los espacios en blanco de una cadena en Python
- Cómo extraer números de una cadena en Python
- Cómo convertir una cadena a datetime en Python