Head First Python第五部分http://python.itcarlow.ie/resources.html可以下载到本文需要的四个txt文件
读取每个txt文件,去掉不必要的空格,将每个文件中的数据,以列表的形式打印显示。
try: with open('james.txt','r') as james_file,open('julie.txt','r')as julie_file,open('mikey.txt','r')as mikey_file,open('sarah.txt','r')as sarah_file: james_list = james_file.readline().strip().split(',') julie_list = julie_file.readline().strip().split(',') mikey_list = mikey_file.readline().strip().split(',') sarah_list = sarah_file.readline().strip().split(',') print(james_list) print(julie_list) print(mikey_list) print(sarah_list) except IOError as err: print('File error:'+str(err)) 运行结果: ['2-34', '3:21', '2.34', '2.45', '3.01', '2:01', '2:01', '3:10', '2-22'] ['2.59', '2.11', '2:11', '2:23', '3-10', '2-23', '3:10', '3.21', '3-21'] ['2:22', '3.01', '3:01', '3.02', '3:02', '3.02', '3:22', '2.49', '2:38'] ['2:58', '2.58', '2:39', '2-25', '2-55', '2:54', '2.18', '2:55', '2:55']如何给这些结果排序呢?
原地排序(In-place sorting)按你指定的顺序排列数据,然后用排序后的数据替换原来的数据。原来的顺序会丢失。对于列表,sort()方法会提供原地排序
复制排序(Copied sorting)是按你指定的顺序排列数据,然后返回原数据的一个有序副本。原数据的顺序依然保留,只是对一个副本排序。在Python中,sorted()BIF支持复制排序。
函数:sanitize。将冒号和横线转换为点号。
def sanitize(time_string): if '-' in time_string: spliter = '-' elif ':' in time_string: spliter = ':' else: return (time_string) (min,secs) = time_string.split(spliter) return (min+'.'+secs) 对上述列表数据进行处理 new_james_list=[] new_julie_list=[] new_mikey_list=[] new_sarah_list=[] for james_time in james_list: new_james_list.append(nester.sanitize(james_time)) for julie_time in julie_list: new_julie_list.append(nester.sanitize(julie_time)) for mikey_time in mikey_list: new_mikey_list.append(nester.sanitize(mikey_time)) for sarah_time in sarah_list: new_sarah_list.append(nester.sanitize(sarah_time)) 运行结果: >>> print(sorted(new_james_list)) ['2.01', '2.01', '2.22', '2.34', '2.34', '2.45', '3.01', '3.10', '3.21'] >>> print(sorted(new_julie_list)) ['2.11', '2.11', '2.23', '2.23', '2.59', '3.10', '3.10', '3.21', '3.21'] >>> print(sorted(new_mikey_list)) ['2.22', '2.38', '2.49', '3.01', '3.01', '3.02', '3.02', '3.02', '3.22'] >>> print(sorted(new_sarah_list)) ['2.18', '2.25', '2.39', '2.54', '2.55', '2.55', '2.55', '2.58', '2.58'] 如何降序排列?
