第4章 序列的应用

python的数据类型分为:空类型、布尔类型、数字类型、字节类型、字符串类型、元组类型、列表类型、字典类型、集合类型

在python中序列是一块用于存放多个值的连续内存空间。

python内置了5种序列分别是元组、列表、字典、集合、字符串

本章将介绍元组、列表、字典、集合四种序列类型,字符串将在第5章介绍

4.4 字典

字典的特征:

1、通过键而不是通过索引来读取

2、字典是可变的,并且可以任务嵌套

3、字典中的键必须唯一

4、字典中的键必须不可变

5、从3.6版本开始,是有序序列

4.4.1 字典的创建和删除

1、直接使用{}创建字典

  1. dictonary = {"key1":"value1", "key2":"value2", ..., "keyn":"valuen"}
  2. 参数说明
  3. dictionary表示字典名称
  4. key1key2、...keyn表示元素的键,必须唯一
  5. value1value2、...、valuen表示元素的值,不须唯一
  1. dict1 = {"Monday":"星期一","Tuesday":"星期二","wednesday":"星期三","Thursday":"星期四","Friday":"星期五","Saturday":"星期六","Sunday":"星期日",}
  2. print(type(dict1))
  3. output:
  4. <class 'dict'>
  1. dictionary = {} # 空字典
  2. dictionary = dict() # 空字典

2、通过映射函数创建字典

  1. dictionary = dict(zip(list1, list2))
  2. 参数说明
  3. dictionary表示字典名称
  4. zip()函数用于将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的zip对象
  1. list1 = ["星期一","星期二","星期三","星期四","星期五","星期六","星期日"]
  2. list2 = ["Monday","Tuesday","wednesday","Thursday","Friday","Saturday","Sunday"]
  3. dictionary = dict(zip(list1, list2))
  4. print(type(dictionary))
  5. print(dictionary)
  1. output:
  2. <class 'dict'>
  3. {'星期一': 'Monday', '星期二': 'Tuesday', '星期三': 'wednesday', '星期四': 'Thursday', '星期五': 'Friday', '星期六': 'Saturday', '星期日': 'Sunday'}

3、通过给定的关键字参数创建字典

  1. dictionary = dict(key1=value1, key2=value2, ..., keyn=valuen)
  1. dictionary = dict(key1="value1", key2="value2", keyn="valuen")
  2. print(type(dictionary))
  3. print(dictionary)
  4. output:
  5. <class 'dict'>
  6. {'key1': 'value1', 'key2': 'value2', 'keyn': 'valuen'}

4、删除字典

  1. del dictionary
  2. dictionary.clear()
  1. dictionary = dict(key1="value1", key2="value2", keyn="valuen")
  2. del dictionary
  3. print(dictionary)
  4. output:
  5. NameError: name 'dictionary' is not defined
  1. dictionary = dict(key1="value1", key2="value2", keyn="valuen")
  2. dictionary.clear()
  3. print(dictionary)
  4. output:
  5. {}

4.4.2 通过键值对访问字典

1、通过键访问值

  1. ditionary[key]
  1. dict1 = {"Monday":"星期一","Tuesday":"星期二","wednesday":"星期三","Thursday":"星期四","Friday":"星期五","Saturday":"星期六","Sunday":"星期日",}
  2. print(dict1["Monday"])
  3. output:
  4. 星期一

2、通过字典对象的get()方法

  1. dictionary.get(key[,default])
  1. dict1 = {"Monday":"星期一","Tuesday":"星期二","wednesday":"星期三","Thursday":"星期四","Friday":"星期五","Saturday":"星期六","Sunday":"星期日",}
  2. print(dict1.get("Monday"))
  3. output:
  4. 星期一

4.4.3 遍历字典

1、keys()

  1. dict1 = {"Monday":"星期一","Tuesday":"星期二","wednesday":"星期三","Thursday":"星期四","Friday":"星期五","Saturday":"星期六","Sunday":"星期日",}
  2. for i in dict1.keys():
  3. print(i)
  4. output:
  5. Monday
  6. Tuesday
  7. wednesday
  8. Thursday
  9. Friday
  10. Saturday
  11. Sunday

2、values()

  1. dict1 = {"Monday":"星期一","Tuesday":"星期二","wednesday":"星期三","Thursday":"星期四","Friday":"星期五","Saturday":"星期六","Sunday":"星期日",}
  2. for i in dict1.values():
  3. print(i)
  4. output:
  5. 星期一
  6. 星期二
  7. 星期三
  8. 星期四
  9. 星期五
  10. 星期六
  11. 星期日

3、items()

  1. dict1 = {"Monday":"星期一","Tuesday":"星期二","wednesday":"星期三","Thursday":"星期四","Friday":"星期五","Saturday":"星期六","Sunday":"星期日",}
  2. for i in dict1.items():
  3. print(i)
  4. output:
  5. ('Monday', '星期一')
  6. ('Tuesday', '星期二')
  7. ('wednesday', '星期三')
  8. ('Thursday', '星期四')
  9. ('Friday', '星期五')
  10. ('Saturday', '星期六')
  11. ('Sunday', '星期日')

4.4.4 添加、修改、删除字典元素

  1. dict1 = {"Monday":"星期一","Tuesday":"星期二","wednesday":"星期三","Thursday":"星期四","Friday":"星期五","Saturday":"星期六",}
  2. # 添加
  3. dict1["Sunday"]="星期日"
  4. print(dict1)
  5. output:
  6. {'Monday': '星期一', 'Tuesday': '星期二', 'wednesday': '星期三', 'Thursday': '星期四', 'Friday': '星期五', 'Saturday': '星期六', 'Sunday': '星期日'}
  7. # 修改
  8. dict1 = {"Monday":"星期一","Tuesday":"星期二","wednesday":"星期三","Thursday":"星期四","Friday":"星期五","Saturday":"星期六","Sunday":"星期日",}
  9. dict1["Sunday"]="星期天"
  10. print(dict1)
  11. output:
  12. {'Monday': '星期一', 'Tuesday': '星期二', 'wednesday': '星期三', 'Thursday': '星期四', 'Friday': '星期五', 'Saturday': '星期六', 'Sunday': '星期天'}
  13. # 删除
  14. dict1 = {"Monday":"星期一","Tuesday":"星期二","wednesday":"星期三","Thursday":"星期四","Friday":"星期五","Saturday":"星期六","Sunday":"星期日",}
  15. del dict1["Sunday"]
  16. # 如果要删除的元素不存在,会抛出异常,可以先做个判断
  17. dict1 = {"Monday":"星期一","Tuesday":"星期二","wednesday":"星期三","Thursday":"星期四","Friday":"星期五","Saturday":"星期六","Sunday":"星期日",}
  18. if "Sunday" in dict1:
  19. del dict1["Sunday"]
  20. print(dict1)
  21. output:
  22. {'Monday': '星期一', 'Tuesday': '星期二', 'wednesday': '星期三', 'Thursday': '星期四', 'Friday': '星期五', 'Saturday': '星期六'}

4.4.5 字典推导式

  1. import random
  2. randomdict = {i:random.randint(10,100) for i in range(1,5)}
  3. print("生成的字典为:",randomdict)
  4. output:
  5. 生成的字典为: {1: 41, 2: 40, 3: 45, 4: 10}
  1. # 拓展:值最大的字典
  2. def max_pairs(dic):
  3. if len(dic) == 0:
  4. return dic
  5. max_val = max(map(lambda v: v[1], dic.items()))
  6. return [item for item in dic.items() if item[1] == max_val]
  7. r = max_pairs({'a': -10, 'b': 5, 'c': 3, 'd': 5})
  8. print(r) # [('b', 5), ('d', 5)]
  1. # 拓展:合并两个字典
  2. def merge_dict2(dic1, dic2):
  3. return {**dic1, **dic2} # python3.5后支持一行代码实现合并字典
  4. merge_dict({'a': 1, 'b': 2}, {'c': 3}) # {'a': 1, 'b': 2, 'c': 3}

敬请关注个人微信公众号:测试工匠麻辣烫

Python3笔记019 - 4.4 字典的更多相关文章

  1. python3笔记目录大纲汇总

    篇一.python3基础知识和语句 python3笔记一:python基础知识 python3笔记二:进制转换与原码反码补码 python3笔记三:运算符与表达式 python3笔记四:if语句 py ...

  2. python学习笔记(一)元组,序列,字典

    python学习笔记(一)元组,序列,字典

  3. python3笔记十二:python数据类型-Dictionary字典

    一:学习内容 字典概念 字典创建 字典访问 字典添加 字典删除 字典遍历 字典与列表比较 二:字典概念 1.使用键值对(key-value)存储,具有极快的查找速度 2.注意:字典是无序的 3.特性: ...

  4. python3笔记十八:python列表元组字典集合文件操作

    一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle  #数据持久性模块 #封装的方法def OptionData(data,path):    # ...

  5. python3笔记-字典

    5 1 # 创建字典 6 2 d=dict(name='lily',age=18,phone='') 7 3 print(d) 4 # {'name': 'lily', 'age': 18, 'pho ...

  6. Python 笔记(一)字典与json使用及注意点

    个人笔记系列,随便参考 1.python 中字典与json的差别 字典的生成 >>> a = dict(one=1, two=2, three=3) >>> b = ...

  7. 从零开始学习PYTHON3讲义(九)字典类型和插入排序

    <从零开始PYTHON3>第九讲 第六讲.上一讲我们都介绍了列表类型.列表类型是编程中最常用的一种类型,但也有挺明显的缺陷,比如: data = [5,22,34,12,87,67,3,4 ...

  8. 小甲鱼Python3笔记

    000-愉快的开始 入门容易,学习难,代码量少. 跨平台: Windows, Mac OS, Linux, UNIX. 应用领域: 操作系统 WEB 3D动画 企业应用 云计算等等. 001-我和Py ...

  9. python3笔记(二)Python语言基础

    缩进 要求严格的代码缩进是python语法的一大特色,就像C语言家族(C.C++.Java等等)中的花括号一样重要,在大多数场合还非常有必要.在很多代码规范里面也都有要求代码书写按照一定的规则进行换行 ...

随机推荐

  1. Java实现 蓝桥杯VIP 算法提高 聪明的美食家

    算法提高 聪明的美食家 时间限制:1.0s 内存限制:256.0MB 问题描述 如果有人认为吃东西只需要嘴巴,那就错了. 都知道舌头有这么一个特性,"由简入奢易,由奢如简难"(据好 ...

  2. Java实现 LeetCode 150 逆波兰表达式求值

    150. 逆波兰表达式求值 根据逆波兰表示法,求表达式的值. 有效的运算符包括 +, -, *, / .每个运算对象可以是整数,也可以是另一个逆波兰表达式. 说明: 整数除法只保留整数部分. 给定逆波 ...

  3. Java实现 LeetCode 97 交错字符串

    97. 交错字符串 给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的. 示例 1: 输入: s1 = "aabcc", s2 = " ...

  4. Arrays.binarySearch和Collections.binarySearch的详细用法

    概述 binarysearch为在指定数组中查找指定值得索引值,该值在范围内找得到则返回该值的索引值,找不到则返回该值的插入位置,如果该值大于指定范围最大值则返回-(maxlength+1),而: i ...

  5. JVM中堆的介绍

    一.堆的概述 一个JVM实例只有一个堆内存,堆也是Java内存管理的核心区域,堆在JVM启动的时候创建,其空间大小也被创建,是JVM中最大的一块内存空间,所有线程共享Java堆,物理上不连续的逻辑上连 ...

  6. 00-03.kaliLinux-vi粘贴复制功能配置

    KaliLinux在xShell的vim中默认是无法复制和粘贴的,需要做如下配置后才能使用: 方法一 进入vim命令行模式,输入: :set mouse=c #进入Command-line 模式 然后 ...

  7. css布局中的垂直水平居中对齐

    前言 我们都知道,固定高宽的div在网页中垂直居中很简单,相信大家也很容易的写出来,但是不是固定高宽的div如何垂直居中呢?我们在网页布局,特别是手机等web端网页经常是不固定高宽的div,那么这些d ...

  8. Python 图像处理 OpenCV (9):图像处理形态学开运算、闭运算以及梯度运算

    前文传送门: 「Python 图像处理 OpenCV (1):入门」 「Python 图像处理 OpenCV (2):像素处理与 Numpy 操作以及 Matplotlib 显示图像」 「Python ...

  9. Linux服务器安装python3.6

    CentOS 7上默认安装的python版本是2.7.5,系统自带的旧版本python被系统很多其他软件环境依赖,因此不能卸载原Python,直接选择Python3.6.5进行全新安装. 1 安装Py ...

  10. ESP8266局域网智能家居 路由器下作服务器模式串口透传 无线通信控制 arduino uno示例 模板参考

    准备工作 下载一个Arduino IDE, 下载8266的库文件 ESP8266服务器模式串口透传编译 功能说明 1.直接使用路由器中转数据 2.手机放热点模式直接传输数据 两者有访问IP地址的差别, ...