我的文件包含以下数据:
12, 9
13, 9
45, 23
1, 4
0, 8
91, 45
638, 56
123, 3
2, 9
现在我需要做的就是这样:
0, 8
1, 4
2, 9
12, 9
13, 9
45, 23
91, 45
123, 3
638, 56
我尝试过使用:
import sys,csv
import operator
reader = csv.reader(open('filename.txt'),delimiter=',')
sort = sorted(reader,key=operator.itemgetter(0),reverse=False)
但这不适合我。它根据第一个位置排列列,而不按我的意愿排列。 :
0, 8
1, 4
12, 9
123, 3
13, 9
2, 9
45, 23
638, 56
91, 45
请帮忙。
答案 0 :(得分:5)
sorted(reader, key=lambda row: int(row[0]))
答案 1 :(得分:0)
我相信您在应用所描述的解决方案时获得的结果与预期一致。剩下的就是你需要将第一列转换为整数而不是使用字符串值(否则你会得到字典排序):
import sys,csv
import operator
reader = csv.reader(open('filename.txt'),delimiter=',')
sort = sorted(reader,key=lambda row: int(row[0]),reverse=False)
答案 2 :(得分:0)
我认为你在那里排序字符串。怎么样:
sort = sorted(tuple(int(x) for x in row) for row in reader)