是否可以创建一个二维数组,其中行索引的顺序相反?

时间:2014-05-28 10:07:29

标签: python arrays

我正在使用Python中的2D数组开发一个简单的游戏网格。打印网格时,我已将每行的第一列设置为显示行标签,但必须将其反转才能工作(网格底部为1 - 顶部为5)。有没有办法创建数组,所以当我在位置[0] [1]插入一个值时,它出现在第二列而不是顶部的网格底部?

grid = [['' for x in range(1,6)] for x in range(1,6)]
# add the player pieces
grid[0][1]= 'P1'
grid[0][2]= 'P2'
grid[0][3]= 'P3'
grid[0][4]= 'P4'

label=['1-Start','2','3','4','5-Finish']
label.reverse()

i=0
for row in grid:
    print (label[i]," ".join(row))
    i+=1

我将使用行位置来计算游戏移动(向上或向下)。 (编辑) 这就是它目前的样子 - 我希望P1等的位置位于印刷网格的底部 - 有没有办法做到这一点?我无法上传图片,但这是打印出来的内容:

5-Finish P1 P2 P3 P4
4
3
2
1-Start

我想知道我是否可以创建数组,以便网格位置[0] [1]为值' P1'会像这样打印出来(我不需要反转我的标签列表):

5-Finish 
4
3
2
1-Start P1 P2 P3 P4

1 个答案:

答案 0 :(得分:0)

1)第一种方法

您可以使用负索引来定义网格。 grid[-1]对应于最后一个单元格。 在这种情况下,请使用:

grid[-1][1]= 'P1'
grid[-1][2]= 'P2'
grid[-1][3]= 'P3'
grid[-1][4]= 'P4'

2)第二种方法

还有另一种方法可以继续;您可以通过这种方式反转列表索引grid[::-1]

for row in grid[::-1]:
    print (label[i]," ".join(row))
    i+=1