python推导数据

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
处理4个选手的数据,输出每个选手跑的最快的3个时间。
1、排序的2中方式
①原地排序sort()
原地排序是指按照指定的顺序排列数据,然后用排序后的数据替换原来的数据。原来的顺序会丢失。
这里写图片描述
②复制排序sorted()
复制排序是指按照指定的顺序排列数据,然后返回原数据的一个有序副本。原数据的顺序依然保留,只是对一个副本排序。
这里写图片描述

向sort()或sorted()传入reverse=True可以按降序排列数据
2、推导列表
格式:
clean_mikey=[]
for each_t in mikey:
clean_mikey.append(sanitize(each_t))
等价于:
clean_mikey=[sanitize(each_t) for each_t in mikey]
3、用集合删除重复项
distances=set(james)
4、要访问列表中的多个数据项可以用分片:
james[0:3]从索引位置0直到(不包括)位置3

def open_file(file_name):
    try:
            with open(file_name) as data:
                    time_items= data.readline().strip().split(',')
                    return time_items
    except IOError as err:
        print('File error:'+str(err))

def time_format(time_item):
        if '-' in time_item:
            splits='-'
        elif ':' in time_item:
            splits=':'

        else:
            return time_item
        (mins,secs)=time_item.split(splits)
        return(mins+'.'+secs)



time_itmes=open_file(r'C:\Users\Administrator\Desktop\HeadFirstPython\chapter5\hfpy_ch5_data\james.txt')
james=[time_format(time_item) for time_item in time_itmes]

james=sorted(set(james))[0:3]
print(james)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值