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