如何在打印函数中重现变量名?

时间:2019-06-13 14:15:40

标签: python-3.x

我知道我可以使用数组,然后可以轻松解决此问题。

但是我很好奇我的问题是否还有其他解决方案。 我想通过串联“ var” + x(1,2,3)来复制打印函数中的变量(var1,var2,var3)

var1 = "one"
var2 = "two"
var3 = "three"

for x in range(1, 4):

    print ("var" + "%d" % (x))

所需的输出结果:

one
two
three

结果是:

var1
var2
var3

3 个答案:

答案 0 :(得分:4)

您可以使用locals()获取将本地变量名称映射到其值的字典,然后在代码尝试时按名称访问它:

var1 = "one"
var2 = "two"
var3 = "three"

for x in range(1, 4):

    print (locals()["var" + "%d" % (x)])

答案 1 :(得分:1)

您可以使用vars()获取当前模块中已定义变量的字典。

var1 = "one"
var2 = "two"
var3 = "three"

for x in range(1, 4):
    print (vars()["var" + "%d" % (x)])

答案 2 :(得分:0)

您可以使用eval()

for x in range(1,4):
    print(eval("var"+str(x)))

但是,它只能用于具有已知模式的变量名称。否则,您需要看一下here