擅长:python、mysql、java
<p>应将读取和验证操作分开:</p>
<pre><code># read first
file = input("Enter a filename: ")
with open(file) as data:
array = [ [ int(i) for i in line.split() ] for line in data ]
</code></pre>
<p>只有这样才能验证。你知道吗</p>
<pre><code># first create a set of numbers 1...9
all_numbers = set(range(1, 10))
# validate rows and columns:
valid = True
# we validate ith row and column in the same loop
for i in range(9):
row_i = array[i]
column_i = [ array[rownum][i] for rownum in range(9) ]
valid &= set(row_i) == all_numbers
valid &= set(column_i) == all_numbers
# valid is True if all constraints succeeded.
# TODO: in sudoku you also need to validate the
# 3x3 subsquares.
</code></pre>