2016-01-20 32 views
-4

我正在嘗試製作一款實戰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但我不能找到在互聯網上的東西如何做這個。此外,我不能使用另一本字典,因爲它與我的程序衝突,如果我要這樣做,它也不會按照我想要的方式工作。

+0

你的問題是非常不清楚。你能提供更多的背景或更好的描述你想要做的事情嗎? – khelwood

+0

op只想使用一個鍵「lvl」的字典值作爲另一個鍵「lvl」的「備份」值。措辭可能會消失,但我認爲他試圖初始化字典的方式顯示了他的問題。是的,他可能會試圖以更好的方式說明這一點。 –

+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.. 
+0

啊!非常感謝你!它現在完美運作。十分感謝! –

+0

@NileRedpath如果這解決了你的問題,不要忘了將它標記爲接受其他用戶面臨的類似問題。 :-) –