2017-09-28 99 views
0

我想反过来通过一个二维数组。那就是为什么我用reversed()但我得到的是说通过反向循环2D数组

列表索引必须是整数,没有列出

阵列例如一个错误:

labirynth = [ 
[1,1,1,1,1,1,1], 
[1,0,0,0,1,0,1], 
[1,0,1,0,0,0,1], 
[1,1,1,1,1,1,1] 
] 

我目前的解决方案:

for i in reversed(labirynth): 
    for j in reversed(labirynth[i]): 
     #do stuff 
+0

[旋转Python中的二维数组(HTTPS的可能重复:// stackoverflow.com/questions/8421337/rotating-a-two-dimensional-array-in-python) – Torxed

回答

1

有没有必要访问清单[]。 outer for循环已经返回列表。你可以做

for i in reversed(labirynth): 
    for j in reversed(i): 
     # do stuf... 
0

你可能想

for i in reversed(labirynth): 
    for j in reversed(i): 
    # do stuff 

这里是一个交互式的演示:

>>> labirynth = [ 
[1,1,1,1,1,1,1], 
[1,0,0,0,1,0,1], 
[1,0,1,0,0,0,1], 
[1,1,1,1,1,1,1] 
] 
... ... ... ... ... 
>>> for i in reversed(labirynth): 
... print i 
... 
[1, 1, 1, 1, 1, 1, 1] 
[1, 0, 1, 0, 0, 0, 1] 
[1, 0, 0, 0, 1, 0, 1] 
[1, 1, 1, 1, 1, 1, 1] 
>>> for i in reversed(labirynth): 
... for j in reversed(i): 
...  print j 
... 
1 
1 
1 
... continues 
+0

这恰好解决了我的问题。谢谢你这么好的解释! – Uliysess