james.txt:2-34,3:21,2.34,2.45,3.01,2:01,2:01,3:10,2-22
julie.txt:2.59,2.11,2:11,2:23,3-10,2-23,3:10,3.21,3-21
mikey.txt:2:22,3.01,3:01,3.02,3:02,3.02,3:22,2.49,2:38
sarah.txt:2:58,2.58,2:39,2-25,2-55,2:54,2.18,2:55,2:55
处理4个选手的数据,输出每个选手跑的最快的3个时间。
1、排序的2中方式
①原地排序sort()
原地排序是指按照指定的顺序排列数据,然后用排序后的数据替换原来的数据。原来的顺序会丢失。
②复制排序sorted()
复制排序是指按照指定的顺序排列数据,然后返回原数据的一个有序副本。原数据的顺序依然保留,只是对一个副本排序。
向sort()或sorted()传入reverse=True可以按降序排列数据
2、推导列表
格式:
clean_mikey=[]
for each_t in mikey:
clean_mikey.append(sanitize(each_t))
等价于:
clean_mikey=[sanitize(each_t) for each_t in mikey]
3、用集合删除重复项
distances=set(james)
4、要访问列表中的多个数据项可以用分片:
james[0:3]从索引位置0直到(不包括)位置3
def open_file(file_name):
try:
with open(file_name) as data:
time_items= data.readline().strip().split(',')
return time_items
except IOError as err:
print('File error:'+str(err))
def time_format(time_item):
if '-' in time_item:
splits='-'
elif ':' in time_item:
splits=':'
else:
return time_item
(mins,secs)=time_item.split(splits)
return(mins+'.'+secs)
time_itmes=open_file(r'C:\Users\Administrator\Desktop\HeadFirstPython\chapter5\hfpy_ch5_data\james.txt')
james=[time_format(time_item) for time_item in time_itmes]
james=sorted(set(james))[0:3]
print(james)