嗨我有两列数据存储在名为“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
任何帮助都会非常感激
答案 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]
,如果您想对第二列进行排序。