Python处理数据--sort,sorted

来源:互联网 发布:百度人工智能负责人 编辑:程序博客网 时间:2024/06/05 01:00

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']

如何降序排列?




0 0
原创粉丝点击