使用循环创建多个变量

时间:2017-10-06 14:08:22

标签: python

假设我需要制作5个变量。 由于这可能需要在将来进行调整,我正在使用循环。

i = 0
for j in range(5):
    i += 1
    w[i] = function(i)

#results in:
    w1 = function(1)
    w2 = function(2)
    #etc...

我知道上面的代码不正确。 是否可以使用循环来创建不同的变量?

3 个答案:

答案 0 :(得分:2)

可以创建实际变量,但不能。使用列表

W = []
for j in range(5):
    ...
    W.append(function(i))

答案 1 :(得分:2)

要创建多个变量,您可以使用类似下面的内容,使用for循环并存储一对键值,其中key是不同的变量名称

    d={} #empty dictionary
    for x in range(1,10): #for looping 
        d["string{0}".format(x)]="Variable1"
  

输出看起来像{' string1':' Variable1',' string2':' Variable1',   ' string3':'变量1',' string4':'变量1',' string5':   '变量1',' string6':'变量1',' string7':'变量1',   ' string8':'变量1',' string9':'变量1'}

答案 2 :(得分:0)

您最好只使用一个列表。它更具可读性和安全性 但是,您可以使用globals()字典:

在全局命名空间中创建变量
i = 0
for j in range(5):
    i += 1
    globals()["w" + str(i)] = function(i)

像这样使用:

print (w1)

但是,这可能不是一个好主意。您可能会意外地覆盖命名空间中的某些内容,这将导致难以调试的错误。真的,尽量不这样做。

如果您想通过名称而不是索引(如列表中)调用它们,请使用您自己的字典:

my_variables = {}
i = 0
for j in range(5):
    i += 1
    my_variables["w" + str(i)] = function(i)

然后像这样使用:

print (my_variables["w1"])