如何在字典中更改变量

时间:2019-05-16 12:27:45

标签: python string dictionary

我想建立一个将变量分配给键的字典,并且要在变量执行时更改键。我了解到,当您将值分配给字典,列表或变量时,它会保留值,而不是确切的代码。我该如何解决? (如果您无法通过print函数周围的括号来判断,这就是Python 2。)

我尝试使用下面的代码来更改字典中的键,但是当该键不起作用时,我在Google上搜索了如何解决此问题。堆栈溢出是我的最后选择。

var = 7

dictionary = {
  "Var": var
}

var += 3

print var
print dictionary["Var"]

我希望输出为

10
10

但是,它输出

10
7

这意味着var发生了变化,但dictionary["Var"]却没有变化。

3 个答案:

答案 0 :(得分:1)

我怀疑您必须使用可变变量,例如:

var = [7]

dictionary = {
  "Var": var
}

var[0] += 3

print(dictionary)
{'Var': [10]}

答案 1 :(得分:0)

为什么不显式声明字典而不是使用var,然后将3加到值本身

#declare the dictionary 
dictionary = {
  "Var": 7
}

#Add 3 to the value
dictionary['Var'] += 3

print(dictionary["Var"])

输出将为10

答案 2 :(得分:0)

这是因为python中的int是不可变的。

var = 7

这将创建新对象7,并对此对象var进行新引用。

dictionary = {
  "Var": var
}

此处您要为键'Var'分配与var相同的引用。所以现在dictionary['Var']var指向同一个对象7。 现在,当您编写:var += 3时,它将创建一个新对象10并将var分配给该对象。

要忽略它,变量var应该是一些可变对象,或者您应该更新字典值:dictionary['Var'] += 3