2016-07-06 83 views
-3

我想用一个像做:如何把一个变量中的变量在python

i = 3 

stored_number_i 

哪里i是3

有没有办法做到这一点,或者是不可能的?至少有一个体面的选择?

+3

是不明确的,你想要做什么。你想创建一个'class'吗?或将变量存储到文本文件中?商店在哪里? – rsm

+3

你试图解决什么问题? –

+0

目前尚不清楚为什么你会想要这个;并且通常有一些不需要这种东西的好理由。你的问题可以通过列表解决吗? –

回答

1

听起来像你正在寻找dict

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

打印42i为3

0

有没有内置的方式来做到这一点。您可能会发现创建自己的数据类型非常有用;即一类。

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

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 
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]