在for循环中定义变量

时间:2013-07-21 00:07:18

标签: python variables for-loop

我正在尝试定义k个变量,看起来像x1,x2,... xn,其中每个变量都是一个列表(每个列表有5个元素)。意思是:

类似的东西:

     for i in [1..100]:
              "x" + str(i) = [ i + 2, i + 3, i + 3, i + 2, i + 4] 
              print ""x" + str(i)", 'x' + str(i) 

    ideal  output:
              x1 = [3,4,4,3,5]
              x2 = ...
              x3
              x4 
               .
               .
               .
              x100 = 

我收到'无效语法'消息。我对能够让我解决这个相当简单的障碍的任何事情持开放态度。

2 个答案:

答案 0 :(得分:2)

您想要的是列表清单。有了列表理解,那就是

lists = [[i+2, i+3, i+3, i+2, i+4] for i in range(1, 101)]

这相当于以下for循环:

lists = []
for i in range(1, 101):
    lists.append([i+2, i+3, i+3, i+2, i+4])

不是写x1,而是写lists[0]。如果你想对元素进行数学运算,

lists[3][2] - lists[6][3]

将是您要写的而不是

x4[2] - x7[3]

答案 1 :(得分:0)

您可以使用classglobalslocals dict执行此操作,例如:

class foo: pass

setattr(foo, 'variable', 'value')

print foo.variable

__dict__的另一个例子:

 class bar:
    def add_var(self, variable, value):
        self.__dict__[variable] = value
bar = bar()
bar.add_var("variable", "value")
print bar.variable

globals的示例:

globals()['variable'] = "value"
print variable

locals相同:

locals()['var'] = "value"
print var