我可以在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
答案 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
但是,实际上,您应该使用list
或dict
,而不是其他答案中的建议。