使用循环创建多个变量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用循环创建多个变量相关的知识,希望对你有一定的参考价值。
假设我需要制作5个变量。由于这可能需要在将来进行调整,我正在使用循环。
i = 0
for j in range(5):
i += 1
w[i] = function(i)
#results in:
w1 = function(1)
w2 = function(2)
#etc...
我知道上面的代码是不正确的。是否可以使用循环来创建不同的变量?
答案
要创建多个变量,您可以使用类似下面的内容,使用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'}
另一答案
您可以创建实际变量,但不能。使用列表
W = []
for j in range(5):
...
W.append(function(i))
另一答案
你最好只使用一个列表。它更具可读性和更安全性。
但是,您可以使用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"])
以上是关于使用循环创建多个变量的主要内容,如果未能解决你的问题,请参考以下文章