首页 > 解决方案 > 比较 N-Puzzle 问题的 3D 数组中的每个单元格

问题描述

我正在尝试比较下面的列表,前两个整数表示0网格内的位置或空间。我想比较目标 [2]/测试 [2] 中的每个单元格并计算匹配的单元格。在这种情况下,只有 5 个匹配位置很重要。关于如何有效地做到这一点的任何建议?

goal = [0, 2, [[3, 2, 0], [6, 1, 8], [4, 7, 5]]]
test = [0, 0, [[0, 7, 1], [4, 3, 2], [8, 6, 5]]]

标签: pythonarrays

解决方案


我会考虑使用 zip() 方法两次:

goal = [0, 2, [[3, 2, 0], [6, 1, 8], [4, 7, 5]]]
test = [0, 0, [[0, 7, 1], [4, 3, 2], [8, 6, 5]]]

for a,b in zip(goal[2],test[2]):
    for g,t in zip(a,b):
        print(g)
        print(t)
        print()

上面的代码仅在给定位置打印值,但经过轻微修改后它应该符合您的要求,但是我不确定您想要什么结果,所以我将它留给您。


推荐阅读