Python 字典和列表的对比应用
2015-09-30 10:34
591 查看
Q:将下列格式的txt文件,打印出该选手的3个最快跑步时间
james2.txt =>“James Lee,2002-3-14,2-34,3:21,2.34,2.45,3.01,2:01,2:01,3:10,2-22,2-01,2.01,2:16"
julie2.txt =>Julie Jones,2002-8-17,2.59,2.11,2:11,2:23,3-10,2-23,3:10,3.21,3-21,3.01,3.02,2:59
mikey2.txt =>Mikey McManus,2002-2-24,2:22,3.01,3:01,3.02,3:02,3.02,3:22,2.49,2:38,2:40,2.22,2-31
sarah2.txt =>Sarah Sweeney,2002-6-17,2:58,2.58,2:39,2-25,2-55,2:54,2.18,2:55,2:55,2:22,2-21,2.22
注.pop()方法从指定列表位置删除并返回一个数据项。
1.通过数据抽取到列表来实现
2. 通过创建字典来实现
3.将字典和数据打印全部写入函数
james2.txt =>“James Lee,2002-3-14,2-34,3:21,2.34,2.45,3.01,2:01,2:01,3:10,2-22,2-01,2.01,2:16"
julie2.txt =>Julie Jones,2002-8-17,2.59,2.11,2:11,2:23,3-10,2-23,3:10,3.21,3-21,3.01,3.02,2:59
mikey2.txt =>Mikey McManus,2002-2-24,2:22,3.01,3:01,3.02,3:02,3.02,3:22,2.49,2:38,2:40,2.22,2-31
sarah2.txt =>Sarah Sweeney,2002-6-17,2:58,2.58,2:39,2-25,2-55,2:54,2.18,2:55,2:55,2:22,2-21,2.22
注.pop()方法从指定列表位置删除并返回一个数据项。
1.通过数据抽取到列表来实现
def senitize(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() return(data.strip().split(',')) except IOError as ioerr: print('File error' +str (ioerr)) return (None) sarah=get_coach_data('sarah2.txt') (sarah_name,sarah_dob)=sarah.pop(0), sarah.pop(0) print(sarah_name+"'s fastest times are:"+ str(sorted(set([senitize(t) for t in sarah]))[0:3])) ========== RESTART: C:/Users/eric/Documents/Python/kelly/kelly2.py ========== Sarah Sweeney's fastest times are:['2.18', '2.21', '2.22']
2. 通过创建字典来实现
def senitize(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() return(data.strip().split(',')) except IOError as ioerr: print('File error' +str (ioerr)) return (None) sarah=get_coach_data('sarah2.txt') sarah_data={} sarah_data['Name']=sarah.pop(0) sarah_data['DOB']=sarah.pop(0) sarah_data['Times']=sarah print(sarah_data['Name']+"'s fastest times are:"+ str(sorted(set([senitize(t) for t in sarah_data['Times']]))[0:3]))
3.将字典和数据打印全部写入函数
def senitize(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() user=data.strip().split(',') user_data={} user_data['Name']=user.pop(0) user_data['DOB']=user.pop(0) user_data['Times']=user print(user_data['Name']+"'s fastest times are:"+ str(sorted(set([senitize(t) for t in user_data['Times']]))[0:3])) except IOError as ioerr: print('File error' +str (ioerr)) return (None) get_coach_data('sarah2.txt') get_coach_data('james2.txt') get_coach_data('mikey2.txt') get_coach_data('julie2.txt') ========== RESTART: C:/Users/eric/Documents/Python/kelly/kelly2.py ========== Sarah Sweeney's fastest times are:['2.18', '2.21', '2.22'] James Lee's fastest times are:['2.01', '2.16', '2.22'] Mikey McManus's fastest times are:['2.22', '2.31', '2.38'] Julie Jones's fastest times are:['2.11', '2.23', '2.59']
相关文章推荐
- python的subprocess模块使用
- Python计算两个日期相差的天数
- LeetCode----Ugly NumberII
- python 初始化测试方法
- python运行类,能够执行
- python 操作文本编辑器
- Python时间函数
- python基础(1)
- 十分钟学会 Python
- python 实现文件复制,删除
- 《Python基础教程 (第2版 修订版)》 第2章 列表和元组(学习笔记· 一)
- python 缩进导致的问题
- python中lambda函数
- Python学习杂记1
- 《Python基础教程(第2版 修订版)》 第1章 快速改造:基础知识(学习笔记)
- 基于用户协同过滤python源码【多线程计算RMSE值】
- Python 之 __new__() 方法与实例化
- Ubuntu下安装python
- Python正则表达式实例演练
- python--sum函数--sum(axis=1)