使用字符串作为变量

时间:2017-12-05 21:03:22

标签: python

我有一个字符串,它是一个变量名。我必须将该变量传递给另一个函数以获得正确的输出。我尝试使用反引号和其他技术。有什么其他方法可以做到这一点?我是初学者,并且在python方面没有太多的专业知识。

for i in range(1,65):
period_writer.writerow([i, max('test' + `i`)])

我想将变量test1,test2,..... test64传递给max()函数并获取这些变量的最大值。

提前致谢

1 个答案:

答案 0 :(得分:1)

您正在尝试这样做:

test1 = something
test2 = something else

for i in range(1,2):
    print('test' + str(i))

然而,由于字符串不能用作变量名称,因此无法正常工作。您可以使用locals()来作弊,这会创建一个局部变量字典:

test1 = something
test2 = something else

for i in range(1,2):
    print(locals()['test' + str(i)])

但你真正应该做的是首先将变量放入字典(或列表!)中。

d = {'test1': something,
     'test2': something else}

for i in range(1,2):
    print(d['test' + str(i)])

# or even better
tests = [something, something else]
for test in tests:
    print(test)

# even better, what you're trying to do is this:
for i, test in enumerate(tests):
    period_writer.writerow([i+1, max(test)])

这使变量更加清晰,并且运行速度更快。

相关问题