在 For 循环中更新字典中的变量
Updating Variables From a Dictionary In a For Loop
在这段代码中,我想更新一些变量(在本例中为 x
和 y
),方法是遍历一个字典,该字典将变量散列为我要分配的新值他们到。但是当我尝试使用 for
循环来遍历和分配变量时,我最终只更新了临时循环 var
而不是实际的 keys/variables。请帮我通过字典循环更新这些变量。
x = 5
y = 10
dict1 = {x : 5,
y : 10
}
for var in dict1:
var -= dict1[var]
print(x,y)
print(dict1)
我认为您对字典和变量的工作原理存在误解。通过写作
dict1 = {x: 5}
你写的相当于
dict1 = {5: 5}
因为您使用的是 值 x 而不是 变量名 x.
你想做的可能通过使用 locals()
来实现,但我建议不要这样做 - 几乎总是有一个更简单、更少“dark-magic”的解决方案。不过,举个例子:
x, y = 5, 10
dict1 = {
"x" : 5,
"y" : 10
}
for var in dict1:
locals()[var] -= dict1[var]
print(x,y)
print(dict1)
在这段代码中,我想更新一些变量(在本例中为 x
和 y
),方法是遍历一个字典,该字典将变量散列为我要分配的新值他们到。但是当我尝试使用 for
循环来遍历和分配变量时,我最终只更新了临时循环 var
而不是实际的 keys/variables。请帮我通过字典循环更新这些变量。
x = 5
y = 10
dict1 = {x : 5,
y : 10
}
for var in dict1:
var -= dict1[var]
print(x,y)
print(dict1)
我认为您对字典和变量的工作原理存在误解。通过写作
dict1 = {x: 5}
你写的相当于
dict1 = {5: 5}
因为您使用的是 值 x 而不是 变量名 x.
你想做的可能通过使用 locals()
来实现,但我建议不要这样做 - 几乎总是有一个更简单、更少“dark-magic”的解决方案。不过,举个例子:
x, y = 5, 10
dict1 = {
"x" : 5,
"y" : 10
}
for var in dict1:
locals()[var] -= dict1[var]
print(x,y)
print(dict1)