如何在同一个字典中将字典变量添加为值

时间:2016-01-20 15:57:04

标签: python variables python-3.x dictionary

我试图制作一款战斗RPG风格的游戏。我使用字典,我想在同一个字典中使用变量作为值,如下所示:

hero = {"name": "player",
        "lvl": 1,
        "plvl": lvl,
        "xp": 48,
        "N_lvl": 48,
        "stats": {"HP": 250,
                  "Att": 1,
                  "U_Att": [21,44],
                  "Def": 2}}

我希望值plvl等于lvl,但我无法在互联网上找到有关如何执行此操作的任何内容。另外,我不能使用另一本字典,因为它与我的程序冲突,如果我这样做,它也不会按照我想要的方式工作。

1 个答案:

答案 0 :(得分:2)

而不是试图一步到位;将其分解为两个:初始化并分配。首先,您要初始化字典:

>>> hero = {"name": "player", "lvl": 1, "xp": 48, "N_lvl": 48,
        "stats": {"HP": 250, "Att": 1, "U_Att": [21,44], "Def": 2}}

然后向其添加新的plvl密钥,并为其分配lvl密钥中包含的值:

>>> hero['plvl'] = hero['lvl']

你们两个都在同一个词典中。

>>> hero
{'N_lvl': 48,
 'lvl': 1,
 'name': 'player',
 'plvl': 1,
 'stats': {'Att': 1, 'Def': 2, 'HP': 250, 'U_Att': [21, 44]},
 'xp': 48}

无需复杂化。

唯一的另一种方法是事先定义lvl并使用内置dict构建字典的替代方法:

lvl = 1
hero = dict(name = "player", lvl = lvl, plvl = lvl, xp = 48 ....) # and so on..