2015-11-17 26 views
0

需要製作6x8矩陣。在這個矩陣中,需要爲矩陣內的不同單元賦值,然後模擬加熱/冷卻系統。但在我到達那裏之前,我需要確保這是正確的。這是你如何製作行和列?打印時不顯示這種方式是否重要?就像我說過的,我需要爲每個單元格賦值,重要的是一些已經有了我創建列表的值?有沒有辦法讓列表沒有任何初始值?不確定2-d列表如何在Python中工作

matrix = [] # Create an empty list 
numberOfRows = 6 
numberOfColumns = 8 
for row in range(0, numberOfRows): 
    matrix.append([]) # Add an empty new row 
    for column in range(0, numberOfColumns): 
     matrix[row].append(column) 

print(matrix) 



[[0, 1, 2, 3, 4, 5, 6, 7], [0, 1, 2, 3, 4, 5, 6, 7], [0, 1, 2, 3, 4, 5, 6, 7], [0, 1, 2, 3, 4, 5, 6, 7], [0, 1, 2, 3, 4, 5, 6, 7], [0, 1, 2, 3, 4, 5, 6, 7]] 
+1

有沒有這樣的事情在Python多維列表,也沒有任何值的列表。 –

+1

[使用'numpy](http://docs.scipy.org/doc/numpy/reference/arrays.ndarray.html)如果你想處理矩陣,更容易 –

+0

以及根據我的老師和另一種方式我打印這個列表以不同的形式存在,你在這兩方面都是不正確的。另外,我們將來會使用numpy,但現在他希望我們能夠使用列表來工作 –

回答

3

是的,這是一個好方法。但是,它是更容易和更Python使用列表理解:matrix = [list(range(numberOfColumns)) for _ in range(numberOfRows)]

是的,你可以用任何值的列表:[]list()

即使一個2維列表:[[]]

但是,它沒有用。

+1

感謝您實際回答我的問題並給我進一步的建議 –

+0

實際上,空列表有很多用途。 – Ingaz

+0

當然,但不適用於矩陣。看看那個美女:http://codegolf.stackexchange.com/a/63553/47040 – Labo

0

您可以用這種方式來使二維數組,但也有少數評論:

  • 您可以考慮初始化元素爲0(或-1)通過改變最後一行matrix[row].append(0)。 這主要是一個設計選擇。例如,如果在您的程序中,稍後您不會更改每個位置的值,那麼您將在初始化時保留舊值。
  • 您可以將range(0, numberOfRows)重寫爲range(numberOfRows);它默認從0開始。
  • 列表理解,因爲Labo的已經提到