如何在 Python 中获取字符网格的用户输入



我对Python很陌生,所以我不太了解它的语法。

因此,我想输入网格的行数和列数

,然后输入受行数和列数约束的字符网格。例如:

如果我的输入是:

3 4
X O X O
X X X X 
O O O O 

我想打印出这样的数组:

grid = [['X', 'O', 'X', 'O'], 
        ['X', 'X', 'X', 'X'], 
        ['O', 'O', 'O', 'O']]

到目前为止,我所拥有的是:

row, column = [int(x) in x for raw_input().split()]
grid = []
for i in range (0, N):
    grid[i].append([])
    grid[i] = raw_input().split()

我收到错误:列出索引超出范围。

不确定我做错了什么。任何帮助将不胜感激。

问题是grid是一个空列表。您不能引用i超出范围grid[i]

你需要append grid,像这样:

for i in range(N): # 0 is implicit
    grid.append(raw_input().split())

无需追加到grid[i]

实际问题是grid是一个空数组,但您正在尝试附加到元素 0 ,这是不可能的。

你可以用列表理解来解决这个问题,就像这样

rows, columns = map(int, raw_input().split())
grid = [raw_input().split() for i in xrange(rows)]

它和写作一样

grid = []
for i in xrange(rows):
    grid.append(raw_input().split())
grid = []
for i in range (0, N):
    grid.append([])
    grid[i]=raw_input().split()
print grid

相关内容

  • 没有找到相关文章