在python中如何将变量放入变量内部
我想使用a来执行以下操作:在python中如何将变量放入变量内部,python,Python,我想使用a来执行以下操作: i = 3 stored_number_i 其中i为3 是有办法做到这一点,还是不可能?至少有一个像样的替代方案吗?没有内在的方法可以做到这一点。您可能会发现创建自己的数据类型很有用;就是一个班级 这样,您就可以设计数据存储在“变量”中的方式。通过 class dummy(): pass 然后可以执行a=dummy()来创建新对象 要设置属性,您可以执行a.blarg=4或setattr(a,'blarg',4) 这样,您就有可能执行您描述的操作: i=3
i = 3
stored_number_i
其中i
为3
是有办法做到这一点,还是不可能?至少有一个像样的替代方案吗?没有内在的方法可以做到这一点。您可能会发现创建自己的数据类型很有用;就是一个班级 这样,您就可以设计数据存储在“变量”中的方式。通过
class dummy():
pass
然后可以执行a=dummy()
来创建新对象
要设置属性,您可以执行a.blarg=4
或setattr(a,'blarg',4)
这样,您就有可能执行您描述的操作:
i=3
setattr(a,'stored_number_{0}'.format(i), 4)
这将给
a.stored_number_3
4
如果您确实想这样做,可以通过两种方式:
- 您可以直接修改
字典,该字典保存模块的所有全局变量:globals
globals()['stored_number_%s' % i] = "content of my programmatically created variable"
- 您可以
执行分配,即以编程方式编写分配代码exec
exec('stored_number_%s = "content of my programmatically created variable"' % i)
请注意,我从来没有见过这样做合适的用例。通常,
dict
或list
是正确的数据结构,您只需执行storaged\u number[i]
听起来像是在寻找dict
stored_number = {23: 1, 1: 17, 3: 42}
print(stored_number[i])
当
i
为3时打印42
。不清楚要执行的操作。是否要创建类
?或者将变量存储到文本文件中?商店在哪里?你想解决的问题是什么?不清楚你为什么想要这个;通常有一些很好的理由不想要这种东西。你的问题可以通过列表解决吗?通常,如果你想直接访问变量名,你需要一个字典或列表来解决。请按照@ BurhanKhalid的要求,描述您的实际用例。在这是可能的情况下,您应该强烈地考虑使用<代码>列表<代码>或<代码> DICT<代码>。我只发现编程变量(或代码)在使用显式模式生成时有用,例如在没有enum
类的时候。