我目前正在学习Python 3,计划将它用于物理学和作为业余爱好。我正在使用使用Python自动化无聊的东西:初学者的实用编程由Al Sweigart。
我目前遇到了一个练习问题。
这是我到目前为止所做的。
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 grid : # x is a list value
for y in x : #y is a string - a character in x
if x.index(y) < len(x) - 1 :
print(grid[grid.index(x)][x.index(y)], end = "")
else :
print(grid[grid.index(x)][x.index(y)])
然而,结果就是这样。
.......OO...OOOO..OOOOO.
.OOOOOOOOOO.
OOOO...OO.........
请指导我找到正确的解决方案。我在查看问题时遇到了一些麻烦。谢谢:))
答案 0 :(得分:0)
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', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']]
rot2 = zip(*grid[::-1])
for i in rot2: print i
# ('.', '.', '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)
看看代码:
#!python3
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', '.', '.', '.'],
['.', '.', '.', '.', '.', '.']]
# The original. The empty-string separator
# is used to join the characters.
for row in grid:
print(''.join(row))
print('------------------------------------')
# Using the zip() function to get the columns.
# The star in front of the grid expands the
# outer list -- as if you passed the inner
# lists as the separate arguments of the zip()
for column in zip(*grid):
print(''.join(column))
print('------------------------------------')
# If you want to use indexing, then you need
# to get the dimensions first.
leny = len(grid) # the number of rows
lenx = len(grid[0]) # the number of elements in the first rows
for x in range(lenx):
for y in range(leny):
print(grid[y][x], end='')
print()
你得到......
......
.OO...
OOOO..
OOOOO.
.OOOOO
OOOOO.
OOOO..
.OO...
......
------------------------------------
..OO.OO..
.OOOOOOO.
.OOOOOOO.
..OOOOO..
...OOO...
....O....
------------------------------------
..OO.OO..
.OOOOOOO.
.OOOOOOO.
..OOOOO..
...OOO...
....O....