组织两个列数据

时间:2012-07-18 11:17:12

标签: python sorting csv

嗨我有两列数据存储在名为“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 个答案:

答案 0 :(得分: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],如果您想对第二列进行排序。