首先是数据:
将上边的四个数据分别写在新建的txt文件中
1、将txt数据转为列表
with open('james.txt') as jaf:
data= jaf.readline() #读取数据行
james = data.strip().split(',')#将数据转换为列表
with open('julie.txt') as jul:
data=jul.readline()
julie= data.strip().split(',')
with open('sarah.txt') as sar:
data=sar.readline()
sarah= data.strip().split()
方法一
with open('james.txt') as jaf, open('julie.txt') as jul,open('sarah.txt') as sar:
data= jaf.readline() #读取数据行
james = data.strip().split(',')#将数据转换为列表
data=jul.readline()
julie= data.strip().split(',')
data=sar.readline()
sarah=data.strip().split()print(james)print(julie)print(sarah)
方法二
2、排序:原地排序 james.sort()、复制排序:james2 = james.sorted() 默认升序,降序参数 sort(reverse= True)
由于数据中有-.:, 需要进一步操作
defsanitize(listt):if '-' inlistt:
splitter= '-'
elif ':' inlistt:
splitter= ':'
else:return(listt)
(mine, sece)= listt.split(splitter)#分裂字符串 结合字符串
return (mine + '.' +sece)defreturnkist(string):
with open(string) as jaf:
data= jaf.readline() #读取数据行
james = data.strip().split(',') #将数据转换为列表
clean_james =[]for ja injames:
clean_james.append(sanitize(ja))
clean_james.sort(reverse=True)returnclean_james
clean= returnkist('james.txt')print(clean)
方法一
defsanitize(listt):if '-' inlistt:
splitter= '-'
elif ':' inlistt:
splitter= ':'
else:return(listt)
(mine, sece)= listt.split(splitter)#分裂字符串 结合字符串
return (mine + '.' +sece)
with open('james.txt') as jaf, open('julie.txt') as jul,open('sarah.txt') as sar:
data= jaf.readline() #读取数据行
james = data.strip().split(',')#将数据转换为列表
data=jul.readline()
julie= data.strip().split(',')
data=sar.readline()
sarah=data.strip().split()
clean_james=[]for ja injames:
clean_james.append(sanitize(ja))
clean_james.sort()print(clean_james)
方法二
3、要返回前三名的成绩
在
def returnkist(string):
with open(string) as jaf:
data = jaf.readline() # 读取数据行
james = data.strip().split(',') # 将数据转换为列表
clean_james = [sanitize(s) for s in james]
clean_james.sort(reverse=True)
return [clean_james[a] for a in range(3)]
-----------------------------------------------