如何在python中将变量放在变量中

时间:2016-07-06 06:20:18

标签: python

我想使用类似的东西:

i = 3

stored_number_i

i为3

有办法做到这一点,还是不可能?至少还有一个不错的选择吗?

4 个答案:

答案 0 :(得分:1)

听起来你正在寻找dict

stored_number = {23: 1, 1: 17, 3: 42}
print(stored_number[i])
42为3时,

打印i

答案 1 :(得分:0)

没有内置的方法可以做到这一点。您可能会发现创建自己的数据类型很有用;即一个班级。

这样,您就可以设计数据存储在“变量”中的方式。

答案 2 :(得分:0)

通过

制作一个虚拟课程
class dummy():
  pass

然后你可以a=dummy()创建新对象。

要设置属性,您可以执行a.blarg=4setattr(a,'blarg',4) 这样就可以让你做出像你描述的那样:

i=3
setattr(a,'stored_number_{0}'.format(i), 4)

将给出

a.stored_number_3
4

答案 3 :(得分:0)

如果您真的想,可以通过两种方式实现:

  • 您可以直接修改globals字典,该字典包含模块的所有全局变量:

    globals()['stored_number_%s' % i] = "content of my programmatically created variable"
    
  • 您可以exec分配,即以编程方式编写分配代码。

    exec('stored_number_%s = "content of my programmatically created variable"' % i)
    

请注意,我从不很少看到这样做的用例。通常,dictlist是要使用的正确数据结构,您只需执行stored_number[i]