Python 当且仅当所有给定条件均为真时
在txt中获得了一个数独网格,如下所示:Python 当且仅当所有给定条件均为真时,python,logical-operators,Python,Logical Operators,在txt中获得了一个数独网格,如下所示: import numpy as np def data_verify(source): rows = [x.strip().split(' ') for x in open(source)] columns = zip(*rows) blocks = np.array(rows).reshape((3,3,3,3)).transpose((0,2,1,3)).reshape((9,9))
import numpy as np
def data_verify(source):
rows = [x.strip().split(' ') for x in open(source)]
columns = zip(*rows)
blocks = np.array(rows).reshape((3,3,3,3)).transpose((0,2,1,3)).reshape((9,9))
#check iff, see further
return rows, columns, blocks
else:
return False
该函数收集所有相关数据,如果行、列和块的长度与列的长度相同,则返回相应的行、列和块(还有一些其他函数确定拼图是否合法)。我认为将第一行与所有列进行比较就足够了(反之亦然,没有区别)。如何创建类似以下内容的支票:
3 2 7 4 8 1 6 5 9
1 8 9 3 6 5 7 2 4
6 5 4 2 7 9 8 1 3
7 9 8 1 3 2 5 4 6
5 6 3 9 4 7 2 8 1
2 4 1 6 5 8 3 9 7
8 1 2 7 9 3 4 6 5
4 7 5 8 1 6 9 3 2
9 3 6 5 2 4 1 7 8
使用:
使用:
使用:
使用:
您可以在for循环中运行检查并设置标志(如果存在任何不匹配),此示例将检查所有行和所有列:
if all(len(row[0]) == len(column[i]) for i in range(len(rows))):
#do something only if all of the lengths check out
您可以在for循环中运行检查并设置标志(如果存在任何不匹配),此示例将检查所有行和所有列:
if all(len(row[0]) == len(column[i]) for i in range(len(rows))):
#do something only if all of the lengths check out
您可以在for循环中运行检查并设置标志(如果存在任何不匹配),此示例将检查所有行和所有列:
if all(len(row[0]) == len(column[i]) for i in range(len(rows))):
#do something only if all of the lengths check out
您可以在for循环中运行检查并设置标志(如果存在任何不匹配),此示例将检查所有行和所有列:
if all(len(row[0]) == len(column[i]) for i in range(len(rows))):
#do something only if all of the lengths check out
谢谢你,知道它很简单,太简单了:(我觉得很愚蠢:请注意,如果它是一个
np.array
你正在测试的正方形,你可以使用len(set(a.shape))==1
。谢谢你,知道它很简单,太简单了:(我觉得很愚蠢:请注意,如果它是一个np.array
你正在测试正方形,你可以用len(set(a.shape))==1
。谢谢,我知道它很简单,太简单了:(我觉得很愚蠢:请注意,如果它是一个np.array
你正在测试正方形,你可以用len(set(a.shape))==1
。谢谢你,我知道它很简单,太简单了:(我觉得很愚蠢:请注意,如果它是一个np.array
你要测试的是正方形,你可以使用len(set(a.shape))==1
。