Python 如何计算包含3个子列表的2个列表之间的Manhaten距离

Python 如何计算包含3个子列表的2个列表之间的Manhaten距离,python,distance,Python,Distance,我试图计算曼哈顿距离“[[0,1,2],[3,4,5],[6,7,8]]。目标是让它最终成为[[1,2,3]、[4,5,6]、[7,8,0]]。但我很不确定如何做到这一点。我试过这样做: def manhattan_distance(self): dist = 0 for i in range(len(self.board)): dist += abs(self.board[i] - self.DEFAULT_BOARD[i]) return d

我试图计算曼哈顿距离“[[0,1,2],[3,4,5],[6,7,8]]。目标是让它最终成为[[1,2,3]、[4,5,6]、[7,8,0]]。但我很不确定如何做到这一点。我试过这样做:

    def manhattan_distance(self):
    dist = 0
    for i in range(len(self.board)):
        dist += abs(self.board[i] - self.DEFAULT_BOARD[i])

    return dist
self.board=[[0,1,2],[3,4,5],[6,7,8]] self.DEFAULT_BOARD=[[1,2,3],[4,5,6],[7,8,0]]


目前,这是我的一个想法,可以解决这个问题,但不会。我尝试在互联网上搜索我可以使用或学习的解决方案,但找不到

考虑一下这种方法:

导入数学
进口itertools
def距离(a、b):
“”“两个长度相同的数字列表之间的距离”“”
返回math.sqrt(求和([a1**2+b1**2表示a1,b1表示压缩(a,b)])
def滑行区(a、b):
“”“接受两个列表”“”
距离=0
对于itertools中的el_a,el_b.izip_最长(a,b):
距离+=距离(标高a、标高b)
返回区
如果名称=“\uuuuu main\uuuuuuuu”:
打印(出租车区([0,1,2],[3,4,5],[6,7,8],[1,2,3],[4,5,6],[7,8,0])

“不会。。。解决问题“这不是一个问题。请提供预期的价格。显示中间结果与您预期的不同之处。就我所见,这应该是一个运行时错误,因为您试图减去两个列表——更不用说未定义的符号和语法错误了。你对这两块板子产生的距离有什么期待,你得到了什么?天哪,哈哈。我会尽我最大的努力。我一直在寻找这样的答案。曼哈顿距离为31.814740669363964