2012-07-18 74 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

它是否必須是Python? 'sort -n Cv_0.out' – eumiro 2012-07-18 11:27:55

+1

什麼是不正確的工作在你當前的代碼?你能否指出目前的輸出結果如何? – Paranaix 2012-07-18 11:30:12

回答

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]而不是row[1],如果你想在第二列進行排序。