2014-05-24 4 views
2

2 차원 배열로 데이터 파일을 읽으려고합니다.파이썬 - 2 차원 배열로 데이터 읽기

FILE.DAT :

file=open("file.dat","r") 

var = [[]] 
var.append([j for j in i.split()] for i in file) 

하지만이 작동하지 않았다 : 내가 좋아하는 뭔가를 시도

1 2 3 a
4 5 6 b
7 8 9 c

예를 들어 .

나중에 각 요소와 함께 작업을 수행해야하므로 2 차원 배열 형태로 데이터가 필요합니다.

for k in range(3): 
    newval(k) = var[k,1] 

어떻게 할 수 있습니까?

+1

실제로 파이썬에는 다차원 배열 구조가 없습니다. 가장 가까운 것은 다른 목록에 대한 참조를 포함하는 목록입니다. –

답변

3
file = open("file.dat", "r")   # open file for reading 

var = []        # initialize empty array 
for line in file: 
    var.append(line.strip().split(' ')) # split each line on the <space>, and turn it into an array 
             # thus creating an array of arrays. 
file.close()       # close file. 
+0

안녕하세요 @ savanto, 내가 시도했지만 2 행 3 (print [var [1 : 2] [2]) 행의 세 번째 요소를 인쇄하려고하면 오류가 발생합니다. print (var [1 : 2] [2]) IndexError :리스트 인덱스가 범위를 벗어났습니다. – user3578925

+0

@ user3578925 파이썬에서와 같은 행을 가로 질러 '행렬'에 액세스 할 수 없습니다. 'var [1 : 3]'은 차원이 2x4 인 배열의 배열을 반환하고, 인덱스 2와'[2] '를 사용하면 인덱스 0과 1 만 있기 때문에 범위를 벗어납니다. 'print ([var [i] [2]는 범위 (1,3)에있는 i에 대해서)' – savanto

+0

@ savanto! 그게 효과가 있었어! 나는 파이썬이 무거운 수학 계산을위한 최선의 선택이 아니라고 생각하기 시작했습니다! – user3578925