2016-02-26 90 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)]