python - 如何从第7列对python文件中的所有记录进行排序?
问题描述
所以我有一个文件:
202010000 Asem ICS104 0 100 100 200
202010000 Asem ICS108 2 75 -1 75
202010001 Khalid ICS202 0 -1 -1 -1
201928690 Hamza ICS104 0 80 -1 80
201928440 Abdullah ICS104 0 100 100 200
202012340 Hassan ICS104 3 60 38 98
201872630 Hadi ICS108 8 90 90 180
201562730 Anwar ICS202 4 75 75 150
201829380 Ali ICS210 3 90 75 165
我需要按总成绩的降序显示此文件中的所有记录(第 7 列)。我问了一个非常相似的问题,根据名称(第 2 列)按字母顺序对记录进行排序。答案是这样的:
studentFile = open(input("Enter file name: "), "r")
lines = studentFile.readlines()
for line in sorted(lines, key=lambda l: l.split()[1]):
print(line)
我试图为第 7 列做一些非常相似的事情,如下所示:
studentFile = open(input("Enter file name: "), "r")
lines = studentFile.readlines()
for line in sorted(lines, key=lambda l: l.split()[6], reverse= True):
print(line)
但它没有按正确的降序给我数字:
202012340 Hassan ICS104 3 60 38 98
201928690 Hamza ICS104 0 80 -1 80
202010000 Asem ICS108 2 75 -1 75
202010000 Asem ICS104 0 100 100 200
201928440 Abdullah ICS104 0 100 100 200
201872630 Hadi ICS108 8 90 90 180
201829380 Ali ICS210 3 90 75 165
201562730 Anwar ICS202 4 75 75 150
202010001 Khalid ICS202 0 -1 -1 -1
我究竟做错了什么?
解决方案
您需要int
在排序之前将其转换为,试试这个:
studentFile = open(input("Enter file name: "), "r")
lines = studentFile.readlines()
for line in sorted(lines, key=lambda l: int(l.split()[6]), reverse= True):
print(line)
输出:
202010000 Asem ICS104 0 100 100 200
201928440 Abdullah ICS104 0 100 100 200
201872630 Hadi ICS108 8 90 90 180
201829380 Ali ICS210 3 90 75 165
201562730 Anwar ICS202 4 75 75 150
202012340 Hassan ICS104 3 60 38 98
201928690 Hamza ICS104 0 80 -1 80
202010000 Asem ICS108 2 75 -1 75
202010001 Khalid ICS202 0 -1 -1 -1
编辑:@cwittah 已经在评论中说过了,我在输入答案时没有看到
推荐阅读
- javascript - 设置为使用 Javascript 通过覆盖设置 div 的背景图像?
- video - 将视频拆分为帧时的额外帧
- microsoft-graph-api - 如何从 Graph API 读取 Delve 联系信息/个人资料
- python-3.x - HackerRank 设计师门垫
- sqlite - 无法加载 DLL - SQLite3
- ocaml - 什么是 PPX?
- javascript - 将 keras 模型加载到 tfjs 会导致输入形状不匹配
- jenkins - 无法获取詹金斯的用户名和密码
- docker - Docker NGINX 反向代理 502 VM 上的错误网关
- python - 如何在Python中的特定行下远程添加一行