我在python中有一个带有键值的dict,对于值,我有一个变量。我想在运行时更改变量的值。如何做到这一点,因为它在初始阶段初始化字典。
假设它是:
number = 45
现在,如果按照dict={ "a" :["welcome" + number + " Back"] } # number = 45
以某种方式进行计算。我想将dict自动更新为:
ad
但dict在初始阶段更新,并且在运行时不会更改数字值。
答案 0 :(得分:3)
int
在Python中是不可变的,但你可以使用可变结构做类似的事情,比如list
:
>>> number = [""]
>>> d={"a":["welcome Back", number]}
>>> d
{'a': ['welcome Back', ['']]}
>>> number[0] = 45
>>> d
{'a': ['welcome Back', [45]]}
在这种情况下,dict
包含对可变list
的引用,因此dict
会在list
更改时更新。
答案 1 :(得分:0)
我建议您只使用classes而不是自引用词典值。
无论如何,这是实现目标的可能方式:
dct = {
"a": lambda: ["welcome {} back".format(dct["number"])],
"number": ""
}
for number in ["one", "two", "three"]:
dct["number"] = number
print(dct["a"]())
答案 2 :(得分:0)
您可以使用列表清单
>>> n = ['']
>>> d = {'a': ["welcome", n, "back"]}
>>> d
{'a': ['welcome', [''], 'back']}
>>> n[0] = 45
>>> d
{'a': ['welcome', [45], 'back']}