Python hackerrank displayPathtoPrincess的值太多,无法解压缩
因此,我刚刚注册了hackerrank,并对第一个人工智能问题进行了研究,这涉及到在网格中搜索“桃子公主”,然后打印出机器人马里奥应该采取的拯救步骤。 这是我的代码:Python hackerrank displayPathtoPrincess的值太多,无法解压缩,python,artificial-intelligence,enumerate,Python,Artificial Intelligence,Enumerate,因此,我刚刚注册了hackerrank,并对第一个人工智能问题进行了研究,这涉及到在网格中搜索“桃子公主”,然后打印出机器人马里奥应该采取的拯救步骤。 这是我的代码: def displayPathtoPrincess(n,grid): MOVES = ['LEFT','RIGHT','UP','DOWN'] m,p = (i for i,x in enumerate(grid) if x != '-') if grid[m] == 'p'
def displayPathtoPrincess(n,grid):
MOVES = ['LEFT','RIGHT','UP','DOWN']
m,p = (i for i,x in enumerate(grid) if x != '-')
if grid[m] == 'p': m,p = p,m
m,p = ((x/m, x%m) for x in [m,p])
if m[0] > p[0]: v = 2
else: v = 3
if m[1] > p[1]: h = 0
else: h = 1
path = [v] * abs(m[0] - p[0])
path.extend([h]*abs(m[1]-m[1]))
return '\n'.join([MOVES[p] for p in path])
运行代码时,我收到ValueError:
Traceback (most recent call last):
File "/game-player1-ooQVK8ZfwGFijjFs07eCIWom4Z3NG8W3/solution.py", line 26, in <module>
displayPathtoPrincess(m,grid)
File "/game-player1-ooQVK8ZfwGFijjFs07eCIWom4Z3NG8W3/solution.py", line 5, in displayPathtoPrincess
m,p = (i for i,x in enumerate(grid) if x != '-')
ValueError: too many values to unpack
回溯(最近一次呼叫最后一次):
文件“/game-player1-ooqvk8zfwgfijfs07eciwom4z3ng8w3/solution.py”,第26行,在
displayPathtoPrincess(m,网格)
文件“/game-player1-ooqvk8zfwgfijfs07eciwom4z3ng8w3/solution.py”,第5行,在displayPathtoPrincess中
m、 p=(如果x!='-',则枚举(网格)中的i表示i,x)
ValueError:要解压缩的值太多
我不太确定我做错了什么,因为我认为enumerate会返回网格内的值以及索引,所以我不会尝试将一个值赋给两个变量。。这个修复可能很容易。
提前谢谢 问题在于生成器表达式
(i代表i,x代表..)
返回单个对象(枚举数),您试图对其进行分解并将其分配给两个变量m,p
。现在还不清楚您到底想要什么,但错误消息并没有错(它只是指m,p
部分,而不是i,x
部分)。这里有一个挑战链接:亲爱的,我现在明白为什么代码错了。我试图用这行代码遍历网格,找到所有不是连字符(表示空格)的字符,并将它们分配给m(mario)和p(peach)。网格中除了连字符之外,唯一可能的字符是字符串“m”和“p”,所以我想我的逻辑会起作用,如果马里奥得到公主的身份,我会切换m和p,反之亦然。。