如何计算包含 3 个子列表的 2 个列表之间的曼哈顿距离

How to calculate Manhatten distance between 2 lists containing 3 sublists

我正在尝试计算曼哈顿距离 '[[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]]

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

考虑这种方法:

import math
import itertools

def distance(a, b):
  """distance between two lists of numbers of same length"""
  return math.sqrt(sum([a1**2 + b1**2 for a1, b1 in zip(a, b)]))

def taxi_dist(a, b):
  """takes two lists of lists"""
  dist = 0
  for el_a, el_b in itertools.izip_longest(a, b):
    dist += distance(el_a, el_b)
  
  return dist

if __name__ == "__main__":
  print(taxi_dist([[0,1,2],[3,4,5],[6,7,8]],[[1,2,3],[4,5,6],[7,8,0]]))