使用循环创建多个变量

问题描述 投票:0回答:3

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

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

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

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

python
3个回答
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':'Variable1','string4':'Variable1','string5':'Variable1','string6':' Variable1','string7':'Variable1','string8':'Variable1','string9':'Variable1'}


2
投票

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

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

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"])
© www.soinside.com 2019 - 2024. All rights reserved.