在 For 循环中更新字典中的变量

Updating Variables From a Dictionary In a For Loop

在这段代码中,我想更新一些变量(在本例中为 xy),方法是遍历一个字典,该字典将变量散列为我要分配的新值他们到。但是当我尝试使用 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)