码迷,mamicode.com
首页 > 编程语言 > 详细

Python系列-格式化数据并排序

时间:2015-05-15 10:52:11      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:python   数据   格式化   排序   

目的:将几个记录时间时刻的数据格式化统一,然后进行排序。

1.前提

有四个文件,文件的格式都不一样,都表示时间
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‘

2.格式化数据

四个文件格式不统一,时间点之间有‘.’,有‘:’,还有‘-’,先使用一个函数将其转化为:全是’.’的格式,如:‘3.01’,代码如下:

def sanitize(time_string):
    if ‘-‘ in time_string:
        splitter = ‘-‘
    elif ‘:‘ in time_string:
        splitter = ‘:‘
    else:
        return(time_string)
    (mins, secs) = time_string.split(splitter)
    return(mins + ‘.‘ + secs)

截图代码如下:
技术分享

3.排序

python中排序有两种,一种是直接sort(list),另外一种是使用sorted(list)。
第一种会直接覆盖原来的数据,第二种是新建一个副本将数据放进去,原来的变量值不变。
整体代码如下:

with open(‘james.txt‘) as jaf:
    data = jaf.readline()
james = data.strip().split(‘,‘)

with open(‘julie.txt‘) as juf:
    data = juf.readline()
julie = data.strip().split(‘,‘)

with open(‘mikey.txt‘) as mif:
    data = mif.readline()
mikey = data.strip().split(‘,‘)

with open(‘sarah.txt‘) as saf:
    data = saf.readline()
sarah = data.strip().split(‘,‘)

print(sorted([sanitize(t) for t in james]))
print(sorted([sanitize(t) for t in julie]))
print(sorted([sanitize(t) for t in mikey]))
print(sorted([sanitize(t) for t in sarah]))

4.测试结果

截图代码:
技术分享
上面的后面三局是将for循环和排序写在一起了,比较如下图:
技术分享
说明:这个格式真的是有点虐心,不按照找个格式输出,IDLE还报错,我真的是无语了,调试了好久,代码没问题,就是格式问题。让我揪心呀。比如下面这幅图:
技术分享
测试结果数据:

[‘2.01‘, ‘2.01‘, ‘2.22‘, ‘2.34‘, ‘2.34‘, ‘2.45‘, ‘3.01‘, ‘3.10‘, ‘3.21‘]
[‘2.11‘, ‘2.11‘, ‘2.23‘, ‘2.23‘, ‘2.59‘, ‘3.10‘, ‘3.10‘, ‘3.21‘, ‘3.21‘]
[‘2.22‘, ‘2.38‘, ‘2.49‘, ‘3.01‘, ‘3.01‘, ‘3.02‘, ‘3.02‘, ‘3.02‘, ‘3.22‘]
[‘2.18‘, ‘2.25‘, ‘2.39‘, ‘2.54‘, ‘2.55‘, ‘2.55‘, ‘2.55‘, ‘2.58‘, ‘2.58‘]

默认地,sort()方法和sorted() BIF都会按升序对数据进行排序。要以降序对数据进行排序,需要向sort()或sorted()传入参数reverse=Treue,python会负责具体处理。

参考书籍:《Head First Python》Barry.

Python系列-格式化数据并排序

标签:python   数据   格式化   排序   

原文地址:http://blog.csdn.net/dream_angel_z/article/details/45739967

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!