我想使用类似的东西:
i = 3
stored_number_i
i
为3
有办法做到这一点,还是不可能?至少还有一个不错的选择吗?
答案 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=4
或setattr(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)
请注意,我从不很少看到这样做的用例。通常,dict
或list
是要使用的正确数据结构,您只需执行stored_number[i]
。