`
fancyboy2050
  • 浏览: 238523 次
  • 性别: Icon_minigender_1
  • 来自: 皇城根儿下
社区版块
存档分类
最新评论

python-Processing data

阅读更多
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)

def get_coach_data(filename):
    try:
        with open(filename) as f:
            data = f.readline()
        list_data = data.strip().split(',')
        sarah_data = {"name":list_data.pop(0),
                      "dob":list_data.pop(0),
                      "times":sorted(set([sanitize(t) for t in list_data]))[0:3]}
        return sarah_data
    except IOError as ioerr:
        print("file error: "+str(ioerr))
        return(None)

sarah = get_coach_data("sarah.txt")
print(sarah["name"]+"'s fastest times are: "+str(sarah["times"]))


sarah.txt:
Sarah Sweeney,2002-6-9,2:58,2.58,2:39,2-25,2-55,2:54,2.18,2:55,2:55,2:22,2-21,2.22


string的strip()函数,去除空格,split()分割字符返回列表
set()无序的不重复的集合
sorted()排序算法,返回一个原序列的副本,而原来的序列不发生变化
sort()排序算法,直接改变原来的序列的顺序返回
sort与sorted默认都是升序,有一个reverse的参数,传入true时为逆序
程序中sarah_data为字典数据结构
字典结构定义方式:
sarah_data = {}
sarah_data = dict()
程序中:sorted(set([sanitize(t) for t in list_data]))[0:3]一段函数式编程
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics