List
<Code>
# Practice Project4
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', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']
for x in range(len(grid)):
for y in range(len(grid)):
try:
if y == len(grid)-1:
print(grid[y][x])
else:
print(grid[y][x], end=' ')
except IndexError:
break
<Result>
. . 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 . . . .
<Comment>
このListがどのような動きをするのかということは、結果からわかったので理解することが出来たが、このプログラム自体がなぜこのような結果をもたらすのかが理解できていない。2重for文の動きは簡単なコードを書いて確認することが出来た。
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', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']]
for x in range(len(grid)):
for y in range(len(grid)):
print(x)
break
print("----------"*5)
for x in range(len(grid)):
for y in range(len(grid)):
print(y)
break
print("----------"*5)
for x in range(len(grid)):
for y in range(len(grid)):
print(grid[y][x])
break
↓
0
0
0
0
0
0
0
0
0
--------------------------------------------------
0
1
2
3
4
5
6
7
8
--------------------------------------------------
.
.
O
O
.
O
O
.
.
--------------------------------------------------
ただ、なぜこうなるという部分が理解できていないので、疑問を解消したい。