2016-10-04 61 views
0

我在想如何得到這個矩陣的行和列。我想遍歷每個元素[行] [列],但我不知道如何獲得這些。得到矩陣的行和列

imaginary_axis = 100 
real_axis = 1 

mixed_matrix = [[0 for j in xrange(imaginary_axis)] for i in xrange(real_axis)] 

for row in mixed_matrix[0]: 
    print(row) 
    for column in mixed_matrix: 
     print(column) 
     check(mixed_matrix[row][column]) 

這會引發錯誤。我怎樣才能使這個工作?

TypeError: list indices must be integers, not list 

我知道爲什麼會出現此錯誤,但我不知道如何才能使列正確。

+2

「拋出一個錯誤」?當然你可以做得更好 – e4c5

+0

看看這樣,你迭代'mixed_matrix [0]'這是一個列表,所以在這種情況下,你的'行'將是一個整數或任何列表的內容。 然後你迭代mixed_matrix本身,這會使你的'列'成爲列表的列表。 你(可能)想要做的是迭代,如: '在行範圍內(0,len(mixed_matrix [0]))''並且對你的循環做同樣的操作,但是使用行索引即 '在列範圍內(0,len(mixed_matrix [0] [row]))' 我可能已經完全錯誤了,但這是我的承擔。 – Dillanm

+0

那不行。 – p3ob2lem

回答

0

我認爲,你可以使用像水木清華enumerate()

原因在你的例子你column是一個列表,但我所看到的 - 你想元素在此列表中的號碼。

我編輯我的回答:

你想要什麼?魔法?沒有魔法。您有矩陣,如下所示: [[1,2,3]]

列表中有一個列表。 你想要迭代的元素?

for lst in matrix: for element in lst: print(element)

或者你可以在一個列表壓縮您的名單,並在該列表中的元素進行迭代。

如果您想按索引訪問 - 您應該使用它。 你應該有兩個循環,列表的數量是行數,列表中元素的數量 - 列數。

而你需要水木清華LILE:

for row in range(0, len(mixed_matrix)): 
    # mixed_matrix[row] - is your FIRST list 
    for column in range(0, len(mixed_matrix[row])): 
    print(mixed_matrix[row][column]) 
+0

究竟如何?有沒有更簡單的方法? – p3ob2lem

+0

列是插入列表的索引位置? '爲行中mixed_matrix [0]:在枚舉 打印(行) 列,列表(mixed_matrix): 打印(列) 打印(mixed_matrix [行] [列])' – aarexer

+0

這並不工作如打算 – p3ob2lem