P79 4.10.2 字元圖網格
原題給的清單中的清單的表項數目都一樣為6,考慮到如果不一樣,以len(grid[0])作為col值就有可能報錯,于是建了一個col_list[]來收集表項數目,循環到out of range的表項時print * 代替。
grid = [['.', '.', '.', '.', '.', '.'],
['.', '0', '0', '.', '.', '.'],
['0', '0', '0', '0', '.', '.'],
['0', '0', '0', '0', '0', '.'],
['.', '0', '0', '0', '0', '0'],
['0', '0', '0', '0', '0', '.'],
['0', '0', '0', '0', '.', '.'],
['.', '0', '0', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']]
row=len(grid)
col_list=[]
for i in range(row):
col=len(grid[i])
col_list.append(col)
col_max=max(col_list)
for y in range(col_max):
for x in range(row):
if x!=row-1:
if y<col_list[x]:
print(grid[x][y],end='')
else:
print('*',end='')
else:
if y<col_list[x]:
print(grid[x][y],end='\n')
else:
print('*',end='\n')
表項數目一緻時輸出的與原題一樣
如果最後一個清單表項為5個時
即
grid = [[’.’, ‘.’, ‘.’, ‘.’, ‘.’, ‘.’],
[’.’, ‘0’, ‘0’, ‘.’, ‘.’, ‘.’],
[‘0’, ‘0’, ‘0’, ‘0’, ‘.’, ‘.’],
[‘0’, ‘0’, ‘0’, ‘0’, ‘0’, ‘.’],
[’.’, ‘0’, ‘0’, ‘0’, ‘0’, ‘0’],
[‘0’, ‘0’, ‘0’, ‘0’, ‘0’, ‘.’],
[‘0’, ‘0’, ‘0’, ‘0’, ‘.’, ‘.’],
[’.’, ‘0’, ‘0’, ‘.’, ‘.’, ‘.’],
[’.’, ‘.’, ‘.’, ‘.’, ‘.’]]
此時輸出的結果為
..00.00..
.0000000.
.0000000.
..00000..
...000...
....0...*