2016-02-26 88 views
0

我正在練習與矩陣循環,但我真的堅持了一個小時。矩陣打印與循環逆轉

A = [[1, 2, 3, 4, 5, 6], 
    [7, 8, 9, 10, 11, 12], 
    [13, 14, 15, 16, 17, 18], 
    [19, 22, 21, 22, 23, 24]] 

這是我的矩陣,基本上我想改變每一行的循環感。

我有我的功能只打印值:

def clearPrint(Matrix): 
i = 0 
j = 0 
result=[] 
longLigne = len(Matrix) 
longCol = len(Matrix[i]) 

for i in range(0, longLigne): 
    print(" ") 
    for j in range (0, longCol): 
     result = Matrix[i][j] 
     print(result, end=" ") 

而且,當涉及到切換扭轉循環,我不知道如何..

這裏是結果,我試圖讓

A = [[1, 2, 3, 4, 5, 6], 
    [12, 11, 10, 9, 8, 7], 
    [13, 14, 15, 16, 17, 18], 
    [24, 23, 22, 21, 20, 19]] 

任何意見,將是有益的

回答

0
a = [[1, 2, 3, 4, 5, 6], 
    [7, 8, 9, 10, 11, 12], 
    [13, 14, 15, 16, 17, 18], 
    [19, 22, 21, 22, 23, 24]] 

for x in a: 
    if a.index(x) % 2 != 0: 
     print (x[::-1]) 
    else: 
     print (x) 

輸出;

[1, 2, 3, 4, 5, 6] 
[12, 11, 10, 9, 8, 7] 
[13, 14, 15, 16, 17, 18] 
[24, 23, 22, 21, 22, 19] 
>>> 

[::-1]將反轉列表。

0

另一個潛在的方法:

def clearPrint(Matrix): 
    for i in range(0, len(Matrix)): 
     if i % 2 != 0: 
      print(list(reversed(Matrix[i]))) 
     else: 
      print(Matrix[i]) 

A = [[1, 2, 3, 4, 5, 6], 
[7, 8, 9, 10, 11, 12], 
[13, 14, 15, 16, 17, 18], 
[19, 22, 21, 22, 23, 24]] 

clearPrint(A) 
+0

哦,謝謝你,你的代碼幫了我很多理解! – tryagainandagain

+0

我很好奇爲什麼這會降低效果。 –

+0

想知道同樣的事情:/ –

2

一行代碼:

A = [v[::-1] if i % 2 == 1 else v for i, v in enumerate(A)]