使用循环将值分配给变量列表

时间:2013-12-22 17:26:27

标签: python list

我可以在C中执行此操作,但我没有在Python中遇到过它。

说我有一些变数:

variable1 = None
variable2 = None
variable3 = None
variable4 = None
variable5 = None

我有值列表[1,2,3,4]

如何使用单个循环将值分配给变量,以便得到以下结果:

variable1 = 1
variable2 = 2
variable3 = 3
variable4 = 4
variable5 = None

3 个答案:

答案 0 :(得分:2)

虽然技术上可以修改局部变量,但是不鼓励这样做。相反,您应该将这些值存储在字典中:

variables = {
    variable1: None,
    variable2: None,
    variable3: None,
    variable4: None,
    variable5: None
}

values = [1, 2, 3, 4]

for i, value in enumerate(values):
    variables['variable' + (i + 1)] = value

但是,当然,如果所有这些变量都是数字,那么你也可以简单地使用一个列表:

# This will create a list with 5 None values, i.e. variables[0] .. variables[4]
variables = [None] * 5

for i, value in enumerate(values):
    variables[i] = value

答案 1 :(得分:1)

您确实应该考虑使用列表,但如果您确定自己在做什么,请尝试:

var1, var2, var3, var4, var5 = my_list + [None]*(5-len(my_list))

答案 2 :(得分:0)

我不建议这样做,但如果真的必须,你可以使用globals()获取已定义变量和函数的字典,以访问和修改它们。

var1 = var2 = var3 = var4 = var5 = None
for i, v in enumerate([1, 2, 3, 4]):
    globals()["var%d" % (i+1)] = v
print var1, var2, var3, var4, var5

但是,实际上,您应该使用listdict,而不是其他答案中的建议。