Python 使用循环创建多个变量

Python 使用循环创建多个变量,python,Python,假设我需要做5个变量。 因为这可能需要在将来进行调整,所以我使用了一个循环 i = 0 for j in range(5): i += 1 w[i] = function(i) #results in: w1 = function(1) w2 = function(2) #etc... 我知道上面的代码不正确。 是否可以使用循环创建不同的变量?您可以创建实际变量,但不能。使用列表 W = [] for j in range(5): ...

假设我需要做5个变量。 因为这可能需要在将来进行调整,所以我使用了一个循环

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

#results in:
    w1 = function(1)
    w2 = function(2)
    #etc...
我知道上面的代码不正确。 是否可以使用循环创建不同的变量?

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

W = []
for j in range(5):
    ...
    W.append(function(i))
您可以创建实际变量,但不能。使用列表

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

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

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


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

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


你最好用一张单子。更具可读性和安全性。
但是,您可以使用
globals()
dictionary在全局命名空间中创建变量:

i = 0
for j in range(5):
    i += 1
    globals()["w" + str(i)] = function(i)
像这样使用它:

print (w1)
print (my_variables["w1"])
然而,这可能不是一个好主意。您可能会意外重写命名空间中的某些内容,这将导致难以调试的错误。真的,尽量不要那样做

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

my_variables = {}
i = 0
for j in range(5):
    i += 1
    my_variables["w" + str(i)] = function(i)
然后像这样使用:

print (w1)
print (my_variables["w1"])

你最好用一张单子。更具可读性和安全性。
但是,您可以使用
globals()
dictionary在全局命名空间中创建变量:

i = 0
for j in range(5):
    i += 1
    globals()["w" + str(i)] = function(i)
像这样使用它:

print (w1)
print (my_variables["w1"])
然而,这可能不是一个好主意。您可能会意外重写命名空间中的某些内容,这将导致难以调试的错误。真的,尽量不要那样做

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

my_variables = {}
i = 0
for j in range(5):
    i += 1
    my_variables["w" + str(i)] = function(i)
然后像这样使用:

print (w1)
print (my_variables["w1"])

仅仅使用列表有什么不对?很难在列表中存储numpy数组,也不会很快变得太复杂,这就是为什么我需要单独的变量。这是否回答了您的问题?仅仅使用列表有什么不对?很难在列表中存储numpy数组,也不会很快变得太复杂,这就是为什么我需要单独的变量。这是否回答了您的问题?就我而言,它们必须是vars(numpy是混乱的)。你能告诉我怎么做吗?你想在什么功能中使用它们??你可以像
globals()['w1']=value
那样添加它们,但这并没有什么意义。这可能是
W.append(function(j))
而不是
W.append(function(i))
@DavidC。这很有意义,但奇怪的是,没有。OP说
function(i)
出于我的目的,它们需要是vars(numpy是凌乱的)。你能告诉我怎么做吗?你想在什么功能中使用它们??你可以像
globals()