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'
答案 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”。