在本练习中,我有一个列表
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', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']]
我必须编写一个小程序,循环遍历列表并打印如下grid [1] [0],grid [2] [0],grid [3] [0]等来显示这张图片
..OO.OO..
.OOOOOOO.
.OOOOOOO.
..OOOOO..
...OOO...
....O....
我必须在一个循环中使用一个循环来做这个,我不是不是因为我今天早上没有足够的咖啡,但我无法弄清楚如何做到这一点。我编写的代码只是按原样打印出网格,图片就在它旁边
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]。任何指针都会非常感激,这是一个非常简单的问题,我觉得不得不寻求帮助。
答案 0 :(得分:1)
你必须只添加每个内部数组的第一个字符,然后第二个等等。
for char in range(len(grid_list[0])):
line = ""
for i in range(len(grid_list)):
line += grid_list[i][char]
print(line)
此解决方案需要内部的所有数组必须具有相同的长度。
答案 1 :(得分:0)
你可以通过这种方式更多地利用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))