一、字典(dictionary)简介:
字典是python提供的另外一种数据类型,它有以下几个特征:
1、字典和列表一样都是可变的数据类型
1、字典内的元素是“键(key):值(value)”类型的
2、字典是一种无序的数据集合,不会以元素的key或者value排序
3、列表是以偏移量来存取、查询数据,而字典是根据key来查询、存取数据
创建字典:
d = {}
d = dict()
插入元素:
d['key'] = 'value'
根据键来查询值:
d['key'] #返回此key对应的value
删除元素:
del d['key'] 删除此key的元素
d.pop('key') 删除元素并返回其value
其他的方法和用法各位google去吧!
二、用字典来改写第七课的内容
需要读取文本文件的数据格式有所改变(
再次提示:这里所提的练习用文件都可在《head first python》一书的官方网站上下载到)
上一课'james.txt'文件中的数据全部为练习成绩(时间)
2-34,3:21,2.34,2.45,3.01,2:01,2:01,3:10,2-22,2-01,2.01,2:16
这一课'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
此情况下改为字典类型来表示数据更为合适(当然用列表也可以,但容易让人费解)
格式化时间的sanitize函数保持不变(当下没理由改变它!)
def sanitize(time):
'''此函数作用为格式化字符串,将字符串中的':'和'-'更换为'.'
参数time为待格式化的字符串'''
if '-' in time:
splitter = '-'
(mins, secs) = time.split(splitter)
elif ':' in time:
splitter = ':'
(mins, secs) = time.split(splitter)
else:
return(time)
return(mins + '.' + secs)
因为文件内包含了时间外的数据,如名字和生日,所以获取文件内时间的函数get_times更改为get_data,并修改函数,将所有元素存入athlete字典,用来获取名字、生日、成绩(时间)
def get_data(filename):
athlete = {} #定义一个字典,以便后边代码为其添加元素
try:
with open(filename) as f:
data = f.readline()
ldata = data.strip().split(',')
athlete['name'] = ldata.pop(0) #list的pop方法用来删除指定偏移量位置的元素,并返回该元素
athlete['dob'] = ldata.pop(0)
clean_times = [sanitize(each_time) for each_time in ldata]
athlete['times'] = clean_times #把clean_times列表作为times键的值
return(athlete)
except IOError as ioerr:
print('file missing: ' + str(ioerr))
调用一下get_data函数来看一下结果:
print(get_times('james2.txt'))
结果:
{'dob': '2002-3-14', 'name': 'James Lee', 'times': ['2.34', '3.21', '2.34', '2.45', '3.01', '2.01', '2.01', '3.10', '2.22', '2.01', '2.01', '2.16']}
返回前最快的三个时间值的get_top3函数也无需修改
def get_top3(times_list):
stimes = set(times_list)
sorted_times = sorted(stimes)
return(sorted_times[0:3])
调用下get_top3函数看结果:
james_data = get_times('james2.txt')
james_top3 = get_top3(james_data['times']) #返回athlete字典中times键中时间最短的三个元素
print(james_data['name'] + '\'s best result is ' + str(james_top3))
结果:
'James Lee's best result is ['2.01', '2.16', '2.22']'
好了,你还想最后打印结果好看点就把james_top3列表for一下吧。
分享到:
相关推荐
清华大学精品Python学习PPT课件-第8章 Python类和对象.pptx 清华大学精品Python学习PPT课件-第9章 Python异常.pptx 清华大学精品Python学习PPT课件-第10章 Python文件操作.pptx 清华大学精品Python学习PPT课件-第11...
清华大学精品Python学习PPT课件-第8章 Python类和对象.pptx 清华大学精品Python学习PPT课件-第9章 Python异常.pptx 清华大学精品Python学习PPT课件-第10章 Python文件操作.pptx 清华大学精品Python学习PPT课件-第11...
清华大学精品Python学习PPT课件-第8章 Python类和对象.pptx 清华大学精品Python学习PPT课件-第9章 Python异常.pptx 清华大学精品Python学习PPT课件-第10章 Python文件操作.pptx 清华大学精品Python学习PPT课件-第11...
数据类型:dict(字典)——修改 Dictionary(字典) 修改字典: 添加键值对 为字典添加新的键值对很简单,直接给不存在的 key 赋值即可 具体语法格式:dictname[key] = value dictname 表示字典名称。 key 表示新的...
清华大学精品Python学习PPT课件-第8章 Python类和对象.pptx 清华大学精品Python学习PPT课件-第9章 Python异常.pptx 清华大学精品Python学习PPT课件-第10章 Python文件操作.pptx 清华大学精品Python学习PPT课件-第11...
字典的值可以是 Python 支持的任意数据类型。 Dictionary(字典) 主要特征: 通过键而不是通过索引来读取元素 字典是任意数据类型的无序集合 字典是可变的,并且可以任意嵌套 字典中的键必须唯一 字典中的键必须不...
嵩天教授Python入门教程-2019-07-22 12:37史上最全的Python学习资料 PDF电子书 大合集-2019-07-22 12:37Python云端系统开发-2019-07-22 12:37Python游戏开发-2019-07-22 12:37Python数据分析和展示-2019-07-22 12:37...
第13课-Python库丨教案-八年级信息技术全文共4页,当前为第1页。第13课-Python库丨教案-八年级信息技术全文共4页,当前为第1页。第13课 Python库 第13课-Python库丨教案-八年级信息技术全文共4页,当前为第1页。 第...
数据类型:dict(字典)——访问 Dictionary(字典) 访问字典: 列表和元组是通过下标来访问元素的,而字典不同,它通过键来访问对应的值。因为字典中的元素是无序的,每个元素的位置都不固定,所以字典也不能像...
数据类型:dict(字典)——扩展Dictionary(字典)——函数如果把一个字典对象作为for的迭代对象,那么这个操作将会遍历字典的键:a = {'数学': 95, '语文': 89, '英语': 90}for i in a: print(i,end=" ")print()...
数据类型:dict(字典)——删除 Dictionary(字典) 删除字典: 删除字典中的键值对 # 使用del语句删除键值对 a = {'数学': 95, '语文': 89, '英语': 90} del a['语文'] del a['数学'] print(a) {'英语': 90} ...
Python 基础教程 第4章 Python 数据类型 Python基础教程-第4章-Python-数据类型全文共70页,当前为第1页。 Python 有 6 个主要的标准数据类型: Number(数字); String(字符串); List(列表); Tuple(元组)...
数据类型:dict(字典)——创建;Dictionary(字典);Dictionary(字典);Dictionary(字典);Dictionary(字典);Dictionary(字典);Dictionary(字典)
清华大学精品Python学习PPT课件-第8章 Python类和对象.pptx 清华大学精品Python学习PPT课件-第9章 Python异常.pptx 清华大学精品Python学习PPT课件-第10章 Python文件操作.pptx 清华大学精品Python学习PPT课件-第11...
基础篇12-python基本数据结构-字典,本视频讲解了字典的用法
数据类型:dict(字典)——函数;Dictionary(字典)——函数;Dictionary(字典)——函数;Dictionary(字典)——函数;Dictionary(字典)——函数;Dictionary(字典)——函数;Dictionary(字典)——函数
例一: 用字典推导式求一个字符串以及其长度 strs=['study','python','come','sirt'] dict1={key:len(key) for key in strs} print(dict1) {'study': 5, 'python': 6, 'come': 4, 'sirt': 4} Dictionary(字典)——...
清华大学精品Python学习PPT课件-第8章 Python类和对象.pptx 清华大学精品Python学习PPT课件-第9章 Python异常.pptx 清华大学精品Python学习PPT课件-第10章 Python文件操作.pptx 清华大学精品Python学习PPT课件-第11...
清华大学精品Python学习PPT课件-第8章 Python类和对象.pptx 清华大学精品Python学习PPT课件-第9章 Python异常.pptx 清华大学精品Python学习PPT课件-第10章 Python文件操作.pptx 清华大学精品Python学习PPT课件-第11...
清华大学精品Python学习PPT课件-第8章 Python类和对象.pptx 清华大学精品Python学习PPT课件-第9章 Python异常.pptx 清华大学精品Python学习PPT课件-第10章 Python文件操作.pptx 清华大学精品Python学习PPT课件-第11...