0

这是我当前的代码:

class city1:
    dict = {"north":"city2", "east": 0, "south": 0, "west": "city3"}

validcmds = ['north', 'east', 'south', 'west']
input=raw_input(">>")
input=set(input.split())
validcmds=set(validcmds)
output = list(validcmds.intersection(input))
print city1.dict(output)

我不知道这条线有什么问题:

print city1.dict(output)

基本上我只想在 city1 类的字典中查找输出。这是我的基于文本的 RPG :)

4

3 回答 3

1

首先,不要使用这个词dictdict()这样做时会屏蔽内置方法。接下来,您可以使用该d.get(key)方法从字典中检索元素。

您可能需要查看您的代码,因为我不相信它可以在当前状态下工作,即使在您从字典中检索元素之后也是如此。

于 2012-04-17T18:35:27.290 回答
0

您不使用括号来访问字典。改为使用print city1.dict[output]。然而,看起来你正在用字典键制作一个列表,如果你尝试在这样的列表上建立索引,Python 会抱怨这不是可散列的。

如果output里面有多个键,那么试试这个:

print [city1.dict[elem] for elem in output]

以数据结构的类型命名数据结构也是不好的做法。我会考虑将重命名dict为其他名称,例如city_dict或更具有描述性的名称。

于 2012-04-17T18:28:43.393 回答
0

输出是一个键列表。你不能一次用一个键列表来键入你的字典。你应该做: print [city1.dict[x] for x in output]

顺便说一句,input是一种方法,通过分配输入您删除了该命令..(在这里并不重要,但您可能想知道)

于 2012-04-17T18:33:48.447 回答