2013-06-12 119 views
-1

我想自己學習python。我正在嘗試打印二維數組,但無法獲得任何運氣。如何使用python打印2D矩陣,如矩陣。?

這裏是代碼

rows = 10 
colms = 10 
grid=[] 

for row in range(0,9): 
    for colm in range(0,9): 
     print(grid[row][colm]) 

我得到的錯誤是「列表出指數」。我累了不同的東西,如

grid[[rows],[colms]] 

但不能遠。

如何打印出一個2-d陣列矩陣狀

+0

什麼呢'打印(LEN(格),LEN(格[0]))'告訴你嗎? – perreal

+0

網格目前沒有任何內容,它1維 – theBigChalk

+0

你可能想考慮在這裏使用numpy或pandas讓你的生活更輕鬆。你可以爲一個簡單的二維數組或者grid = np.asmatrix(np.zeros((rows,colms))寫一個'grid = np.zeros((rows,colms))'做類似交叉產品的事情 – abarnert

回答

1

grid在它沒有條目還,所以任何試圖在任何索引中它將無法訪問的部件。您必須先填寫數值。

例如:

In [11]: grid = [] 

In [12]: for i in range(10): 
    ....:  row = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 
    ....:  grid.append(row) 
    ....: 

In [13]: grid 
Out[13]: 
[[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, 0, 0, 0, 0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] 

In [14]: grid[9][9] 
Out[14]: 0 

(!請注意,您必須創建在網格中的每一行作爲一個單獨的對象,如果他們都在同一行對象編輯會導致他們都被編輯)

編輯:要輸入到電網,做這樣的事情:

In [15]: grid[0][0] = int(raw_input("input: ")) 
input: 1 

In [16]: grid 
Out[16]: 
[[1, 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, 0, 0, 0, 0, 0, 0, 0], 
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] 
+0

我怎樣才能讓它成爲一個讓用戶可以輸入到數組中?我只是使用輸入? – Mani

+0

@Mani請參閱我的編輯。 – Patashu