打印网格中行和列的标签 (PYTHON)

Print labels for rows and columns in grid (PYTHON)

如果这个问题之前已经发布过,我深表歉意,但是如果是的话,我无法在任何地方找到它。另外,我对 numpy 不熟悉。不幸的是,我能找到的唯一答案是麻木的答案。我不想使用 numpy,因为我仍在学习 coding/python 的基础知识。

我正在尝试为我的网格打印标签。我有一个简单的游戏板,我想标记 A、B、C、D 列和 1、2、3、4 行。

这是我生成网格的代码:

def initial(): #Function that creates the 2d array and assigns it the values I want
board = []
for x in range(numrows):
    board.append([])
    for y in range(numcols):   
        if ((x + y)%2):        
           board[x].append('X')   
        else:
            board[x].append('O')  

这是输出:

  O X O X
  X O X O
  O X O X

我试图让我的输出看起来像这样:

    A  B  C  D 
1   O  X  O  X
2   X  O  X  O
3   O  X  O  X

我知道我必须操纵索引,而不是值,但就像我说的,我仍然是个菜鸟。根据我在这里所拥有的,解决这个问题的最佳方法是什么?它是否应该与创建初始网格的代码分开 for 循环和打印语句?或者我能以某种方式改变我的初始游戏板代码来实现这些 row/column 标签吗?

到目前为止,我有这样的想法:

      for r in range(numrows): # I have a variable in the code numrows = 3
        if(r==0):
            print("1")
        if(r==1):
            print("2")
        if(r==2):
            print("3")
        for c in range(numcols): # also a variable numcols = 4
            if(c==0):
                print("A")
            if(c==1):
                print("B")
            if(c==2):
                print("C")
            if(c==3):
                print("D")
        show_grid(board) #function that prints my board

我想我已经很接近了,但是我已经束手无策了..我需要帮助。预先感谢您花时间和精力回答我的问题。

对于模块化的东西(因此 Pythonic :p):

columnsIndices = ['A', 'B', 'C', 'D']
rowsIndices = [1, 2, 3, 4]
print(" ", end="")
for c in columnsIndices :
    print(" " + str(c), end="")      #str() is useless, but it's good practice
print()                              #linefeed
for i in range(len(grid)) :
    print(str(rowsIndices[i]), end="")
    for elt in grid[i] :
        print(" " + str(elt), end="")
    print()                          #linefeed