Python 如何比较两个列表之间的对应位置

Python 如何比较两个列表之间的对应位置,python,python-3.x,Python,Python 3.x,我刚开始学习Python。也许这有点太多了,但我试着做一个简单的数独游戏,不是一个数独解算器,而是一个程序,你把解决方案(数独完成),谜题(数独不完整),然后用户输入加载到谜题上。 一旦拼图的所有元素与完成时的元素相同,程序就完成了 我在C上做的很差,但效果很好 我的问题是,我似乎不明白如何比较两个列表。 我有这个(我使用4x4,直到所有测试都正常): 我想做的是我在C代码(或类似代码)上所做的事情: int compareSudo(int sudoResuelto[4][4],int sudo

我刚开始学习Python。也许这有点太多了,但我试着做一个简单的数独游戏,不是一个数独解算器,而是一个程序,你把解决方案(数独完成),谜题(数独不完整),然后用户输入加载到谜题上。 一旦拼图的所有元素与完成时的元素相同,程序就完成了

我在C上做的很差,但效果很好

我的问题是,我似乎不明白如何比较两个列表。 我有这个(我使用4x4,直到所有测试都正常):

我想做的是我在C代码(或类似代码)上所做的事情:

int compareSudo(int sudoResuelto[4][4],int sudoTerminado[4][4])
{
int状态;
int i=0,j=0;
对于(;i<4;i++)
{
对于(;j<4;j++)
{
if(sudoComplete[i][j]==sudoIncomp[i][j])
{
状态=1;
}否则
{
状态=0;
打破
}
}
j=0;
如果(状态==0)
{
打破
}
}
返回状态;
}
抱歉,没有评论


回报必须是一回事。不管是数字还是布尔值。

如果我理解这个任务,您只需要检查列表的相等性:

result = list1 == list2

显而易见的解释:如果列表相等
结果将包含
如果我正确理解问题,您需要检查矩阵在第二个非零的所有位置是否相等。此功能应执行此操作(但是,它假定且不检查两个输入是否具有相同的尺寸):

如果两个列表相等,则返回true。
如果您有兴趣了解正确值的索引

np.where(np.array(sudoComplete) == np.array(sudoIncomp))
详细信息:
通过这行代码,您可以在列表中具有相同元素的位置找到带有
'True'
的矩阵:

np.array(sudoComplete) == np.array(sudoIncomp)

np.where()
返回真值的索引

欢迎使用StackOverflow!那么您想比较“数独完成”和“数独不完整”是否相同?数独完成==数独完成您可以直接比较两个(嵌套)列表是否相等,包括元素。这就是你想要的吗?我认为你的C代码没有跳过
sudoIncomp
0
的位置。
    def compareSudo(full, partial):
        for i in range(0,len(partial)):
            for j in range(0, len(partial[i])):
                if partial[i][j] != 0 and partial[i][j] != full[i][j]:
                    return False
        return True
sudoComplete == sudoComplete
np.where(np.array(sudoComplete) == np.array(sudoIncomp))
np.array(sudoComplete) == np.array(sudoIncomp)