执行python代码字典问题时出错

时间:2010-07-18 08:55:50

标签: python dictionary

while stack.isEmpty() != 1:
             fin = stack.pop()
         print fin            - output is (1,1)
         k = final.get(fin)
         return k

def directionToVector(direction, speed = 1.0):
    dx, dy =  Actions._directions[direction]
    return (dx * speed, dy * speed)
  directionToVector = staticmethod(directionToVector)

但是当我这样做返回时,它给了我一个错误,最后是我用键和值列表做的目录

错误是:

File "line 212, in directionToVector
    dx, dy =  Actions._directions[direction]
KeyError: 'W'

2 个答案:

答案 0 :(得分:1)

Actions._directions大概是字典,所以行:

dx, dy =  Actions._directions[direction]

在运行时(基于错误消息)是:

dx, dy =  Actions._directions["W"]

并且抱怨说该词典中没有关键字“W”。所以你应该检查一下你是否真的在那里添加了一些值。或者,您可以执行以下操作:

dx, dy =  Actions._directions.get(direction, (0, 0))

其中(0,0)可以是没有这样的键时选择的任何默认值。另一种可能性是明确处理错误:

try:
    dx, dy =  Actions._directions[direction]
except KeyError:
    # handle the error for missing key

答案 1 :(得分:0)

此错误

KeyError: 'W'

表示您请求的密钥('W')不是存储在字典中的密钥之一。这是因为您的词典键是'west'而不是'W'(请参阅previous question)。试试这个:

key = { 'N' : 'north', 'S' : 'south', 'E' : 'east', 'W' : 'west' }[direction]
dx, dy =  Actions._directions[key]

或者,请确保将字符串“west”传递给directionToVector而不是字符串“W”。