数独神经网络
我正在尝试用Python创建一个数独棋盘,并让神经网络运行并学习如何解决它。但是,我在设置这些初始值为0时遇到了问题。我不想一个一个地写a1=0,a2=0等等。有没有更快的方法可以简单地给这些值赋值呢?谢谢。
def create():
print '| - - - | - - - | - - - |',
print '|', a1, a2, a3, '|', b1, b2, b3, '|', c1, c2, c3, '|',
print '|', a4, a5, a6, '|', b4, b5, b6, '|', c4, c5, c6, '|',
print '|', a7, a8, a9, '|', b7, b8, b9, '|', c7, c8, c9, '|',
print '| - - - | - - - | - - - |',
print '|', d1, d2, d3, '|', e1, e2, e3, '|', f1, f2, f3, '|',
print '|', d4, d5, d6, '|', e4, e5, e6, '|', f4, f5, f6, '|',
print '|', d7, d8, d9, '|', e7, e8, e9, '|', f7, f8, f9, '|',
print '| - - - | - - - | - - - |',
print '|', g1, g2, g3, '|', h1, h2, h3, '|', i1, i2, i3, '|',
print '|', g4, g5, g6, '|', h4, h5, h6, '|', i4, i5, i6, '|',
print '|', g7, g8, g9, '|', h7, h8, h9, '|', i7, i8, i9, '|',
print '| - - - | - - - | - - - |',
2 个回答
1
3
你可能会想用一个列表来处理这个问题。
如果你真的想保持现在的做法,你可以这样做:
a1 = a2 = a3 ... = i9 = 0
或者为了节省一些书写空间
#(0,)*81 is the same thing as writing 0, 0, ..., 0
a1, a2, a3, ..., i9 = (0,)*81
但我建议你使用一个列表的列表。
这里有一个列表推导式,它可以创建一个包含9个零的列表:
a = [0 for x in range(9)]
用这个思路来创建一个包含9个列表的列表推导式。
grid = [[0 for x in range(9)] for y in range(9)]
然后你可以这样访问这个网格:
>>> print grid[0][0]
>>> 0
>>> print grid[8][8]
>>> 0
>>> print grid
>>> [[0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0]]