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 

任何帮助将非常感激

4

1 回答 1

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]

于 2012-07-18T11:43:03.797 回答