从lis中的列表打印网格值

2024-06-16 11:50:09 发布

您现在位置:Python中文网/ 问答频道 /正文

在这个练习中我有一个单子

grid = [['.', '.', '.', '.', '.', '.'],
       ['.', 'O', 'O', '.', '.', '.'],
       ['O', 'O', 'O', 'O', '.', '.'],
       ['O', 'O', 'O', 'O', 'O', '.'],
       ['.', 'O', 'O', 'O', 'O', 'O'],
       ['O', 'O', 'O', 'O', 'O', '.'],
       ['O', 'O', 'O', 'O', '.', '.'],
       ['.', 'O', 'O', '.', '.', '.'],
       ['.', '.', '.', '.', '.', '.']]

我必须编写一个小程序,在列表中循环并打印如下网格[1][0]、网格[2][0]、网格[3][0]等以显示这张图片

^{pr2}$

我必须在一个循环中使用循环,我不知道这是否只是因为我今天早上没有喝足够的咖啡,但我不知道该怎么做。我写的代码只是打印出网格的原样,图片就在它的侧面

def printer(grid_list):

line = ""
for i in range(len(grid_list)):
    for char in range(len(grid_list[i])):
         line += grid_list[i][char]
    print(line)
    line = ""

结果:

......
.OO...
OOOO..
OOOOO.
.OOOOO
OOOOO.
OOOO..
.OO...
......

我知道我的问题是我的代码在网格[0][1],网格[0][2],网格[0][3]之间循环。任何建议都将不胜感激,这是一个相当简单的问题,我觉得寻求帮助是愚蠢的。在


Tags: 代码in网格forlenline图片range
2条回答

通过这样做,您可以更充分地利用Python,这在我看来也是更容易理解的,这可能会在清晨有所帮助:

grid_list = [['.', '.', '.', '.', '.', '.'],
             ['.', 'O', 'O', '.', '.', '.'],
             ['O', 'O', 'O', 'O', '.', '.'],
             ['O', 'O', 'O', 'O', 'O', '.'],
             ['.', 'O', 'O', 'O', 'O', 'O'],
             ['O', 'O', 'O', 'O', 'O', '.'],
             ['O', 'O', 'O', 'O', '.', '.'],
             ['.', 'O', 'O', '.', '.', '.'],
             ['.', '.', '.', '.', '.', '.']]

for i in range(len(grid_list[0])):
    print(''.join(row[i] for row in grid_list))

必须只向行中添加每个内部数组中的第一个字符,然后再添加第二个字符等

for char in range(len(grid_list[0])):
    line = ""
    for i in range(len(grid_list)):
         line += grid_list[i][char]
    print(line)

这个解决方案要求内部的所有数组必须具有相同的长度。在

相关问题 更多 >