Home > Back-end >  How can I print the value, of the value, of a python variable
How can I print the value, of the value, of a python variable

Time:04-14

I have a variable, that we'll call x , which stores the string test
I have another variable, that we'll call y , which stores the string value x

Is there any way that I could print(y) , in order to return test

In other words, how can I print the value of y which itself stores the name of the variable x ?

I should also mention that I cannot just print(x) , because x changes, (as does its string value).

CodePudding user response:

>>> x="test"      
>>> y="x"         
>>> eval(y)       
'test'            

But don't use eval. A better approach would be to use a mapping, such as a dictionary.

>>> mapping = {"x": "test"}     
>>> mapping[y]                  
'test'                          

Actually, variables in python are in a dictionary anyway, accessible via either the globals() or locals() builtins. So, another way to access a name dynamically is…

>>> globals()[y]   
'test'             

…but this is just a more magical and less clear solution to creating the dictionary that you really need.

CodePudding user response:

You can create a dictionary:

d = {"x": "test"}
y = "x"
print(d[y])

If you want to use variable x then you can set some value to x as initializing. As you said x value can change:

x = None # can be any value depending on the user. 
d = {x: "test"}
y = x
print(d[y])

Output:

"test"
  • Related