`
yuanta11
  • 浏览: 61345 次
  • 性别: Icon_minigender_1
  • 来自: 淄博
社区版块
存档分类
最新评论

Python第八课-另一种数据类型:字典 dictionary

阅读更多
一、字典(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一下吧。
0
1
分享到:
评论

相关推荐

    Python-中LIST操作.docx

    字典是另一种重要的数据结构,它以键值对的形式存储数据。例如,`dict = {'ob1':'computer', 'ob2':'mouse', 'ob3':'printer'}`。字典的方法包括: - `get()`:安全地获取键对应的值,`D.get(key, default)`,如果...

    2021-2022计算机二级等级考试试题及答案No.13778.docx

    - A选项:字段是数据库中记录的一部分,并不是数据类型的另一种说法。 - B选项:正确。数据类型决定了字段可以存储的数据种类,例如文本、数字等。 - C选项:数据类型与数据库应用程序无关。 - D选项:Access表...

    一个视频学Python

    - Python中有五种基本的数据类型: 数字(Number)、字符串(String)、列表(List)、元组(Tuple)和字典(Dictionary)。 - 同一个变量可以在不同的时候存储不同类型的数据。 ### 3. 算术运算 - Python支持基本的数学运算...

    python-student-list

    在Python编程语言中,列表(List)是一种非常重要的数据结构,它允许我们存储一系列的元素,这些元素可以是任意类型,如整数、浮点数、字符串甚至是其他对象。"python-student-list"这个主题恰好涉及到如何使用列表...

    2021-2022计算机二级等级考试试题及答案No.9836.docx

    - **结构体**: 在Python中,可以使用字典(dictionary)来模拟结构体的功能,如定义一个结构体`person = {'name': 'Alice', 'age': 25}`。 #### 7. Windows回收站中的文件 - **知识点**: Windows操作系统中,删除的...

    软件测试学习

    - 字典是一种键值对的数据结构。 - 不支持索引操作,通过键来访问值。 - 可变性:支持增加、删除操作。 - 示例:`dict['key'] = value` 添加/修改键值对。 9. **集合 (Set)**: - 集合是一个无序且不重复的...

    Python常用数据结构的使用方法.docx

    **定义与特点**:字符串是Python中用来表示文本的数据类型。字符串是不可变的,即一旦创建就不能修改其内容。 **创建方式**: - 使用单引号`' '`或双引号`"`来创建一个字符串。 ```python message = 'Hello, ...

    列表pythonlist.zip

    在Python编程语言中,列表(List)是一种非常重要的数据结构,它允许我们存储多个元素,并且这些元素可以是不同类型的数据,如整数、浮点数、字符串甚至其他列表。列表在Python中用方括号`[]`表示,元素之间用逗号...

    Python-3-教程.doc

    **字典(Dictionary)**:字典是另一种常用的数据结构,它由键值对组成。操作字典的方法包括访问、修改、添加和删除键值对: ```python x = {'a': 'aaa', 'b': 'bbb'} x['c'] = 'ccc' # 添加键值对 del x['b'] # ...

    python基础篇.pdf

    - **丰富的数据类型**:Python 支持多种数据类型,包括整数、浮点数、复数以及无限长度的大整数、字符串(ASCII 和 Unicode)、列表、字典等。 - **面向对象编程**:Python 支持类和多级继承等面向对象编程技术。 - ...

    Python基础-第五节作业.zip

    4. 字典(Dictionary):字典是Python中另一种重要的数据结构,它由键值对组成,提供高效的数据查找。掌握字典的创建、访问和更新方法对于编写高效代码至关重要。 5. 条件语句(Conditional Statements):包括if、...

    2021-2022计算机二级等级考试试题及答案No.16293.docx

    - **子查询**(Subquery): 是指一个查询嵌套在另一个查询之中。 - 子查询可以在查询设计网格中的“字段”行定义新字段,或在“准则”行定义字段的准则。 - 因此,正确选项为**D. 子查询**。 #### 22. 文件...

    Python学习笔记.pdf

    笔记中提及了Python的多种基本数据类型,包括整数(integer),浮点数(float),布尔值(None,实际上None是表示空值的特殊类型,不是布尔类型),列表(list),字符串(string),元组(tuple),序列(sequence...

    我的方法:我的方法在https://docs.google.compresentationd1kXhzVY4a1nJGWEPiT-z5EZzERSx06O9iY7F1G4w8ud0edit#slide=id.gc6f90357f_0_31

    Python是一种高级、解释型、交互式和面向对象的脚本语言。它以其简洁明了的语法和强大的库支持而受到广泛欢迎,适用于Web开发、数据分析、人工智能等多个领域。 1. **基本语法**: - **缩进**:Python以缩进来区分...

    超级无敌Python教程

    - 字典(dictionary)是一种可变容器模型,用于存储键值对。 #### 循环技巧 - 如何更高效地使用循环来处理数据。 ### 5. 模块 #### 深入模块 - **模块搜索路径**: Python解释器会在特定路径下查找模块。 - **“编译...

    python试卷(有答案版本-个人答案不是官方答案).doc

    1. 注释:Python中有两种注释方式,一种是使用`#`,另一种是使用三对单引号或双引号`''' '''`或`""" """`,后者可以用于多行注释。 2. 换行与分号:Python允许使用三对单引号或双引号将长语句分解成多行,而语句间...

    Python_Basic_第一天作业.zip

    7. **字典(Dictionary)**:字典是另一种重要的数据结构,由键值对组成。通过键来快速查找对应的值,是处理关联数据的理想选择。 8. **输入与输出**:使用`input()`函数获取用户输入,并使用`print()`函数输出结果。...

    python面试常见的25个问题.docx

    - **Pylint**:另一种常用的代码质量检测工具,可以检查代码是否符合PEP 8规范和其他编码标准。 ### 7. 装饰器 **知识点:** - **装饰器** 是Python中一种高级功能,它允许在不修改原函数代码的情况下添加新功能...

    python-basic

    - **数据类型**:Python支持多种数据类型,包括整数(int)、浮点数(float)、字符串(str)、布尔值(bool)和NoneType。 - **变量**:Python中的变量无需预先声明,可以直接赋值使用。 - **运算符**:包括算术...

    Python基础面试题

    Python是一种广泛使用的高级编程语言,尤其在Web开发和数据分析领域有着重要的地位。了解其基本数据结构和特性对于Python程序员来说至关重要。本题涉及到的Python基础知识包括数据结构(列表、集合、元组和字典)、...

Global site tag (gtag.js) - Google Analytics