【发布时间】:2017-12-26 13:25:57
【问题描述】:
我有以下代码,并试图以最简单的方法对文件内容进行排序。
import csv
import operator
#==========Search by ID number. Return Just the Name Fields for the Student
with open("studentinfo.txt","r") as f:
studentfileReader=csv.reader(f)
id=input("Enter Id:")
for row in studentfileReader:
for field in row:
if field==id:
currentindex=row.index(id)
print(row[currentindex+1]+" "+row[currentindex+2])
#=========Sort by Last Name
with open("studentinfo.txt","r") as f:
studentfileReader=csv.reader(f)
sortedlist=sorted(f,key=operator.itemgetter(0),reverse=True)
print(sortedlist)
我知道各种可能的解决方案,但不能完全让它们正常运行,并且出于教学/学习目的,我对最简单有效且解释清楚的解决方案感兴趣。
研究包括: ****进口运营商**** sortedlist = sorted(reader, key=operator.itemgetter(3), reverse=True)
或使用 lambda sortedlist = sorted(reader, key=lambda row: row[3], reverse=True)
对于答案,如果有人可以发布完整的工作解决方案,我将不胜感激,显示按 LAST NAME 和 ID Number 排序,以说明两个不同的示例。答案的扩展是在这个特定示例中展示如何按多个值排序:
完整代码清单:
文件内容
002,Ash,Smith,Test1:20,Test2:20,Test3:100003
004,Grace,Asha,Test1:33,Test2:54,Test3:23
005,Cat,Zelch,Test1:66,Test2:22,Test3:11
001,Joe,Bloggs,Test1:99,Test2:100,Test3:1
003,Jonathan,Peter,Test1:99,Test2:33,Test3:44
【问题讨论】: