2014-02-18 5 views
2

저는 파이썬을 처음 접했기 때문에 문법을 잘 알지 못합니다.Python에서 문자 그리드의 사용자 입력을 얻는 방법

그래서 입력으로 격자의 행과 열 수를 입력 한 다음 행과 열의 수로 제한된 문자 격자를 입력하고 싶습니다. 예를 들어 :

내 입력은

경우

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() 

이 같은 배열을 인쇄 할

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

목록 색인이 범위를 벗어났습니다.

내가 잘못하고있는 것이 확실하지 않습니다. 어떤 도움을 주시면 감사하겠습니다.

+0

입력은 STDIN에서 오는 쓰기와 같은 것은 무엇입니까? –

답변

1

문제는 grid입니다. 빈 목록입니다. i이 범위를 벗어나는 grid[i]을 참조 할 수 없습니다. grid[i]

1

실제 문제가 grid가 빈 상태 (empty)의 배열입니다에 추가 할

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

필요가 없습니다,하지만 당신은 요소 0에 추가하려고 :

는이 같은 gridappend 필요 이는 불가능합니다. 이

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()) 
0
grid = [] 
for i in range (0, N): 
    grid.append([]) 
    grid[i]=raw_input().split() 
print grid 
관련 문제