首页 > 解决方案 > Python 3 字典返回不同的值

问题描述

我正在制作一个小型文本 rpg 游戏来练习 python 并实现我需要做的事情。这是我的第一个问题,我还没有强大的 python 基础。我有一个嵌套字典,我想从字典中打印一个值,但我得到一个完全不同的值。为什么会这样?

ZONENAME = ""
DESCRIPTION = "description" 
EXAMINATION = "info"
ANSWER = ""
SOLVED = False
UP = "up", "north"
DOWN = "down", "south"
LEFT = "left", "west"
RIGHT = "right", "east"

zonemap = {
    "a1": {
        ZONENAME: "Hometown",
        DESCRIPTION : "ioioi",
        EXAMINATION : "---",
        SOLVED : False,
        ANSWER : "",
        UP : "i",
        DOWN : "i",
        LEFT : "i",
        RIGHT : "a2",
    },
    "a2": {
        ZONENAME : "ii",
        DESCRIPTION : "....",
        EXAMINATION : "....",
        ANSWER : "your name",
        SOLVED : False,
        UP : "i",
        DOWN : "i",
        LEFT : "i",
        RIGHT : "a3",
    }
}

print(zonemap["a2"][ZONENAME])

标签: pythondictionarynested

解决方案


阐述 Andrej 的评论:

ZONENAME并且ANSWER都是空字符串。当您将这些用作 中的键时zonemap["a2"],键是""(一个空字符串),而不是 "ZONENAME"or "ANSWER"。因此,您首先将值分配给"ii""",然后将值分配给"your name"""。当您尝试通过 访问区域名称时zonemap["a2"][ZONENAME],您实际上是在访问zonemap["a2"][""],其中包含值"your name"


推荐阅读