3

こんにちは、「Cv_0.out」というファイルに 2 列のデータが保存されています。各列は 2 つのスペースで区切られています。

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、問題は、2番目の列で並べ替える場合に、row[0]の代わりにを使用することでした。row[1]

于 2012-07-18T11:43:03.797 に答える