processing python_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]一段函数式编程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值