2012-07-18 2 views
3

안녕하세요 저는 "Cv_0.out"라는 파일에 저장되어있는 두 개의 컬럼 데이터가 각 열은 두 개의 공백조직이 열 데이터

로 구분됩니다
12 454 
232 123 
879 2354 
12312 23423 
8794 1237 
3245 34 
그때 오름차순으로이 데이터를 정렬하고 싶은

오른쪽 열 값에만 기반을두고 동시에 값 쌍을 유지하면서 왼쪽면 값을 다시 정렬합니다. 내가 시도

3245 34 
232 123 
12 454 
8794 1237 
879 2354 
12312 23423 

그렇게까지 다음 : 나는 다음을 좀하고 싶습니다

import sys,csv  
import operator 
reader = csv.reader(open('Cv_0.out'),delimiter=' ') 
sort = sorted(reader, key=lambda row: int(row[0])) 
print sort 

어떤 도움이 정말

감사하겠습니다
+1

파이썬이되어야합니까? 'sort -n Cv_0.out' – eumiro

+1

현재 코드에서 정확히 작동하지 않는 것은 무엇입니까? 현재 산출물이 어떻게 보이는지 지적 해 주시겠습니까? – Paranaix

답변

2

귀하의 입력 파일이 CSV하지 않고도 처리 할 수 ​​있습니다 :

with open("input") as f: 
    lines = (map(int,x.strip().split()) for x in f) 
    newLines = sorted(lines, key=lambda row: row[1]) 
    print "\n".join(str(x)+ " " + str(y) for x,y in newLines) 

IMO 문제가 row[0] 대신,435 사용하던, 두 번째 열을 정렬하려면.