Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python hackerrank displayPathtoPrincess的值太多,无法解压缩_Python_Artificial Intelligence_Enumerate - Fatal编程技术网

Python hackerrank displayPathtoPrincess的值太多,无法解压缩

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'

因此,我刚刚注册了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': 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,反之亦然。。