需要在python网格的每一列上方编号

时间:2016-12-16 22:09:37

标签: python-3.5 grid-layout

我需要修改程序' x'因此它输出原始网格,但每个行和列都标有它的相应数字。即,第1列具有第一列,第1行具有第一列。我已经弄清楚如何在行前放置编号,但无法弄清楚如何修改程序以便列编号。

' X'

import random
aGrid = []
SIZE = 10
for r in range (0,SIZE,1):
    aGrid.append ([])
    for c in range (0,SIZE,1):
        element = random.randint(0,9)
        aGrid[r].append (element)
for r in range (0,SIZE,1):
    for c in range (0,SIZE,1):
        print(aGrid[r][c], end="")
    print()

这是我尝试在行前面编号

import random
aGrid = []
SIZE = 11

for r in range (0,SIZE - 1,1):
    aGrid.append ([])
    aGrid[r].append (r )
    aGrid[r].append (" ")
    for c in range (0,SIZE + 1,1):
        element = random.randint(0,9)
        aGrid[r].append (element)

for r in range (0,SIZE - 1,1):
    for c in range (0,SIZE + 1,1):
        print(aGrid[r][c], end="")
    print()

1 个答案:

答案 0 :(得分:0)

您不需要更改aGrid。只需打印打印循环中的行号和列号:

import random

aGrid = []
SIZE = 10

for r in range (SIZE):
    aGrid.append ([])
    for c in range (SIZE):
        element = random.randint(0,9)
        aGrid[r].append (element)
print(" ", end="")
for c in range (SIZE):
    print(c, end="")
print()
for i, r in enumerate(range(SIZE)):
    print(i, end="")
    for c in range(SIZE):
        print(aGrid[r][c], end="")
    print()

输出:

 0123456789
01958724133
17006217440
21488953544
35615572045
49849348546
54207744418
63316678723
76651582077
85713263320
91939404287

从1开始计数的版本,并且有一些空间以提高可读性:

import random

aGrid = []
SIZE = 10

for r in range (SIZE):
    aGrid.append ([])
    for c in range (SIZE):
        element = random.randint(0,9)
        aGrid[r].append (element)
print("  ", end=" ")
for c in range (1, SIZE + 1):
    print(c, end=" ")
print()
for i, r in enumerate(range(SIZE), 1):
    print('{:2d}'.format(i), end=" ")
    for c in range(SIZE):
        print(aGrid[r][c], end=" ")
    print()

输出:

   1 2 3 4 5 6 7 8 9 10 
 1 3 0 4 6 3 9 3 3 6 3 
 2 5 6 1 6 6 3 2 5 6 1 
 3 6 9 0 5 0 7 1 1 7 7 
 4 7 4 3 9 0 9 1 0 7 8 
 5 5 1 1 1 1 7 1 4 4 8 
 6 4 5 8 1 6 3 6 2 8 6 
 7 4 1 0 5 7 4 5 6 6 4 
 8 4 5 5 4 3 3 0 9 2 1 
 9 3 6 7 0 0 9 5 8 5 9 
10 3 1 2 3 5 0 1 6 2 9