无法正确显示数组 (Python3)

Trouble getting the right appearance of an array (Python3)

我正在尝试构建一个数组,但我似乎做不好:我要么获得我想要的外观,要么获得我想要的功能,但永远不能两者兼得。我是计算机科学的新手,我已经在这上面花了很多时间,请帮助我指明正确的方向。

#tried this and could access elements, but then how do I add the appearance of the list without turning the elements into strings?
board = []
for i in range(10):
   board_row = []
for j in range(10):
    board_row.append(".")
board.append(board_row)



#This is how I want the board to look, but I can't access elements from this board since it's not a list
for i in range(15):
    print(i, " ", end ="") 
print("\n")

for j in range(12):
   row = ((".  " + "") * 10) + ((".  " + " ") * 5)
   print(row, j)

如果您想使用嵌套循环,那么这对您有用。我还建议使用 str.format 来调整您的价值观。

board = []
for i in range(12):
    board_row = []
    for j in range(15):
        board_row.append("{:<3}".format('.'))
    board.append(board_row)

或者您可以使用列表理解

board = [["{:<3}".format('.') for j in range(15)] for i in range(12)]

最后显示网格

for i in range(15):
    print("{:<3}".format(i), end ="") 
print("\n", end='')

for i, x in enumerate(board):
    print(''.join(x), i)

#Output
0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  
.  .  .  .  .  .  .  .  .  .  .   .   .   .   .    0
.  .  .  .  .  .  .  .  .  .  .   .   .   .   .    1
.  .  .  .  .  .  .  .  .  .  .   .   .   .   .    2
.  .  .  .  .  .  .  .  .  .  .   .   .   .   .    3
.  .  .  .  .  .  .  .  .  .  .   .   .   .   .    4
.  .  .  .  .  .  .  .  .  .  .   .   .   .   .    5
.  .  .  .  .  .  .  .  .  .  .   .   .   .   .    6
.  .  .  .  .  .  .  .  .  .  .   .   .   .   .    7
.  .  .  .  .  .  .  .  .  .  .   .   .   .   .    8
.  .  .  .  .  .  .  .  .  .  .   .   .   .   .    9
.  .  .  .  .  .  .  .  .  .  .   .   .   .   .    10
.  .  .  .  .  .  .  .  .  .  .   .   .   .   .    11

我假设您想要的功能是更改特定行的元素值,并且特定 column.You 可以使用多维数组来实现该功能或使用数组中的数组

board=[]
ar_row=[]
for i in range(15):
    ar_row.append(str(i)+"  ")
board.append(ar_row)

for j in range(12):
   row = ((".  " + ",") * 10) + ((".   " + ",") * 5)
   ar_row = row.split(',')
   ar_row.append(str(j))
   board.append(ar_row)


for element in board:
    print ' '.join(element)

上面的代码启动了一个板子,看起来像

0   1   2   3   4   5   6   7   8   9   10   11   12   13   14  
.   .   .   .   .   .   .   .   .   .   .    .    .    .    .     0
.   .   .   .   .   .   .   .   .   .   .    .    .    .    .     1
.   .   .   .   .   .   .   .   .   .   .    .    .    .    .     2
.   .   .   .   .   .   .   .   .   .   .    .    .    .    .     3
.   .   .   .   .   .   .   .   .   .   .    .    .    .    .     4
.   .   .   .   .   .   .   .   .   .   .    .    .    .    .     5
.   .   .   .   .   .   .   .   .   .   .    .    .    .    .     6
.   .   .   .   .   .   .   .   .   .   .    .    .    .    .     7
.   .   .   .   .   .   .   .   .   .   .    .    .    .    .     8
.   .   .   .   .   .   .   .   .   .   .    .    .    .    .     9
.   .   .   .   .   .   .   .   .   .   .    .    .    .    .     10
.   .   .   .   .   .   .   .   .   .   .    .    .    .    .     11 

该板中的每一行都保存为板数组中的一个数组。 我想更改第 0 列和第 10 行的元素的值,只需将其更改为 board[11][0] = your_value 但这可能会改变板在编辑元素值时的视觉外观。所以尝试按照 steven

的建议使用 str.format