2014-04-29 58 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