Python 从列表中的列表打印网格值
在这个练习中,我有一个列表Python 从列表中的列表打印网格值,python,python-3.x,Python,Python 3.x,在这个练习中,我有一个列表 grid = [['.', '.', '.', '.', '.', '.'], ['.', 'O', 'O', '.', '.', '.'], ['O', 'O', 'O', 'O', '.', '.'], ['O', 'O', 'O', 'O', 'O', '.'], ['.', 'O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O', '.'],
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]等以显示此图片
..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]。任何指针都将不胜感激,这是一个非常简单的问题,我觉得寻求帮助很愚蠢。您必须只向行中添加每个内部数组的第一个字符,然后再添加第二个字符,以此类推
for char in range(len(grid_list[0])):
line = ""
for i in range(len(grid_list)):
line += grid_list[i][char]
print(line)
此解决方案要求内部的所有数组必须具有相同的长度。通过这种方式,您可以利用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))
您的line=”“
应位于第一个for循环的正后方,否则未定义line