带有键值的python中的dict,值包含一个变量

时间:2017-09-20 11:21:38

标签: python dictionary

我在python中有一个带有键值的dict,对于值,我有一个变量。我想在运行时更改变量的值。如何做到这一点,因为它在初始阶段初始化字典。

假设它是:

number = 45

现在,如果按照dict={ "a" :["welcome" + number + " Back"] } # number = 45 以某种方式进行计算。我想将dict自动更新为:

ad

但dict在初始阶段更新,并且在运行时不会更改数字值。

3 个答案:

答案 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']}