我有一个字符串,它是一个变量名。我必须将该变量传递给另一个函数以获得正确的输出。我尝试使用反引号和其他技术。有什么其他方法可以做到这一点?我是初学者,并且在python方面没有太多的专业知识。
for i in range(1,65):
period_writer.writerow([i, max('test' + `i`)])
我想将变量test1,test2,..... test64传递给max()函数并获取这些变量的最大值。
提前致谢
答案 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)])
这使变量更加清晰,并且运行速度更快。