一、字典(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一下吧。
分享到:
相关推荐
字典是另一种重要的数据结构,它以键值对的形式存储数据。例如,`dict = {'ob1':'computer', 'ob2':'mouse', 'ob3':'printer'}`。字典的方法包括: - `get()`:安全地获取键对应的值,`D.get(key, default)`,如果...
- A选项:字段是数据库中记录的一部分,并不是数据类型的另一种说法。 - B选项:正确。数据类型决定了字段可以存储的数据种类,例如文本、数字等。 - C选项:数据类型与数据库应用程序无关。 - D选项:Access表...
- Python中有五种基本的数据类型: 数字(Number)、字符串(String)、列表(List)、元组(Tuple)和字典(Dictionary)。 - 同一个变量可以在不同的时候存储不同类型的数据。 ### 3. 算术运算 - Python支持基本的数学运算...
在Python编程语言中,列表(List)是一种非常重要的数据结构,它允许我们存储一系列的元素,这些元素可以是任意类型,如整数、浮点数、字符串甚至是其他对象。"python-student-list"这个主题恰好涉及到如何使用列表...
- **结构体**: 在Python中,可以使用字典(dictionary)来模拟结构体的功能,如定义一个结构体`person = {'name': 'Alice', 'age': 25}`。 #### 7. Windows回收站中的文件 - **知识点**: Windows操作系统中,删除的...
- 字典是一种键值对的数据结构。 - 不支持索引操作,通过键来访问值。 - 可变性:支持增加、删除操作。 - 示例:`dict['key'] = value` 添加/修改键值对。 9. **集合 (Set)**: - 集合是一个无序且不重复的...
**定义与特点**:字符串是Python中用来表示文本的数据类型。字符串是不可变的,即一旦创建就不能修改其内容。 **创建方式**: - 使用单引号`' '`或双引号`"`来创建一个字符串。 ```python message = 'Hello, ...
在Python编程语言中,列表(List)是一种非常重要的数据结构,它允许我们存储多个元素,并且这些元素可以是不同类型的数据,如整数、浮点数、字符串甚至其他列表。列表在Python中用方括号`[]`表示,元素之间用逗号...
**字典(Dictionary)**:字典是另一种常用的数据结构,它由键值对组成。操作字典的方法包括访问、修改、添加和删除键值对: ```python x = {'a': 'aaa', 'b': 'bbb'} x['c'] = 'ccc' # 添加键值对 del x['b'] # ...
- **丰富的数据类型**:Python 支持多种数据类型,包括整数、浮点数、复数以及无限长度的大整数、字符串(ASCII 和 Unicode)、列表、字典等。 - **面向对象编程**:Python 支持类和多级继承等面向对象编程技术。 - ...
4. 字典(Dictionary):字典是Python中另一种重要的数据结构,它由键值对组成,提供高效的数据查找。掌握字典的创建、访问和更新方法对于编写高效代码至关重要。 5. 条件语句(Conditional Statements):包括if、...
- **子查询**(Subquery): 是指一个查询嵌套在另一个查询之中。 - 子查询可以在查询设计网格中的“字段”行定义新字段,或在“准则”行定义字段的准则。 - 因此,正确选项为**D. 子查询**。 #### 22. 文件...
笔记中提及了Python的多种基本数据类型,包括整数(integer),浮点数(float),布尔值(None,实际上None是表示空值的特殊类型,不是布尔类型),列表(list),字符串(string),元组(tuple),序列(sequence...
Python是一种高级、解释型、交互式和面向对象的脚本语言。它以其简洁明了的语法和强大的库支持而受到广泛欢迎,适用于Web开发、数据分析、人工智能等多个领域。 1. **基本语法**: - **缩进**:Python以缩进来区分...
- 字典(dictionary)是一种可变容器模型,用于存储键值对。 #### 循环技巧 - 如何更高效地使用循环来处理数据。 ### 5. 模块 #### 深入模块 - **模块搜索路径**: Python解释器会在特定路径下查找模块。 - **“编译...
1. 注释:Python中有两种注释方式,一种是使用`#`,另一种是使用三对单引号或双引号`''' '''`或`""" """`,后者可以用于多行注释。 2. 换行与分号:Python允许使用三对单引号或双引号将长语句分解成多行,而语句间...
7. **字典(Dictionary)**:字典是另一种重要的数据结构,由键值对组成。通过键来快速查找对应的值,是处理关联数据的理想选择。 8. **输入与输出**:使用`input()`函数获取用户输入,并使用`print()`函数输出结果。...
- **Pylint**:另一种常用的代码质量检测工具,可以检查代码是否符合PEP 8规范和其他编码标准。 ### 7. 装饰器 **知识点:** - **装饰器** 是Python中一种高级功能,它允许在不修改原函数代码的情况下添加新功能...
- **数据类型**:Python支持多种数据类型,包括整数(int)、浮点数(float)、字符串(str)、布尔值(bool)和NoneType。 - **变量**:Python中的变量无需预先声明,可以直接赋值使用。 - **运算符**:包括算术...
Python是一种广泛使用的高级编程语言,尤其在Web开发和数据分析领域有着重要的地位。了解其基本数据结构和特性对于Python程序员来说至关重要。本题涉及到的Python基础知识包括数据结构(列表、集合、元组和字典)、...