2014-04-29 67 views
0

所以我想在Python中创建一个数独板并让NN运行并学会解决它。但我有问题试图将这些初始值设置为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 '| - - - | - - - | - - - |', 
+0

我不知道神经网络,但如果你有在声明一点的灵活性,列表或其他类似的数据结构很有可能使您的生活轻松了许多。 – StephenTG

+0

使用列表和循环代替使用不同的变量。例如。 '[a.append(0)for i in range(9)]'。 – rutulPatel

回答

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]] 
+0

你的第一个建议不会起作用,它应该是'a1 = a2 ... = 0'或者'a1,a2,... = 0,0,...' – jonrsharpe

+0

@jonrsharpe谢谢,修正它。 – Matthew

1

当这样的结构在Python我definitly建议给看看numpy.matrix工作。

你可以只写

>>> import numpy 
>>> m = numpy.zeros(shape=(9,9)) 
+3

'numpy.matrix'和'numpy.array'之间有一个重要的区别,特别是在将它们相乘时。你提到了一个矩阵,但是你的代码创建了一个数组! – Hooked

+0

@Hooked你绝对是对的!我建议看看矩阵部分,同时提供我认为是获得所需结构的最简单方法,即实际上只是一个数组。然而,将这个数组传递给'matrix'构造函数应该足以获得最终需要的'numpy.matrix'对象。 – 5agado