第4章 序列的应用

4.1 序列

4.2 列表

4.3 元组

4.4 字典

4.5 集合

4.6 列表、元组、字典、集合的区别

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

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

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

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

4.4 字典

字典的特征:

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

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

3、字典中的键必须唯一

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

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

4.4.1 字典的创建和删除

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

dictonary = {"key1":"value1", "key2":"value2", ..., "keyn":"valuen"}

参数说明

dictionary表示字典名称

key1、key2、...keyn表示元素的键,必须唯一

value1、value2、...、valuen表示元素的值,不须唯一

dict1 = {"Monday":"星期一","Tuesday":"星期二","wednesday":"星期三","Thursday":"星期四","Friday":"星期五","Saturday":"星期六","Sunday":"星期日",}

print(type(dict1))

output:

dictionary = {} # 空字典

dictionary = dict() # 空字典

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

dictionary = dict(zip(list1, list2))

参数说明

dictionary表示字典名称

zip()函数用于将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的zip对象

list1 = ["星期一","星期二","星期三","星期四","星期五","星期六","星期日"]

list2 = ["Monday","Tuesday","wednesday","Thursday","Friday","Saturday","Sunday"]

dictionary = dict(zip(list1, list2))

print(type(dictionary))

print(dictionary)

output:

{'星期一': 'Monday', '星期二': 'Tuesday', '星期三': 'wednesday', '星期四': 'Thursday', '星期五': 'Friday', '星期六': 'Saturday', '星期日': 'Sunday'}

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

dictionary = dict(key1=value1, key2=value2, ..., keyn=valuen)

dictionary = dict(key1="value1", key2="value2", keyn="valuen")

print(type(dictionary))

print(dictionary)

output:

{'key1': 'value1', 'key2': 'value2', 'keyn': 'valuen'}

4、删除字典

del dictionary

dictionary.clear()

dictionary = dict(key1="value1", key2="value2", keyn="valuen")

del dictionary

print(dictionary)

output:

NameError: name 'dictionary' is not defined

dictionary = dict(key1="value1", key2="value2", keyn="valuen")

dictionary.clear()

print(dictionary)

output:

{}

4.4.2 通过键值对访问字典

1、通过键访问值

ditionary[key]

dict1 = {"Monday":"星期一","Tuesday":"星期二","wednesday":"星期三","Thursday":"星期四","Friday":"星期五","Saturday":"星期六","Sunday":"星期日",}

print(dict1["Monday"])

output:

星期一

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

dictionary.get(key[,default])

dict1 = {"Monday":"星期一","Tuesday":"星期二","wednesday":"星期三","Thursday":"星期四","Friday":"星期五","Saturday":"星期六","Sunday":"星期日",}

print(dict1.get("Monday"))

output:

星期一

4.4.3 遍历字典

1、keys()

dict1 = {"Monday":"星期一","Tuesday":"星期二","wednesday":"星期三","Thursday":"星期四","Friday":"星期五","Saturday":"星期六","Sunday":"星期日",}

for i in dict1.keys():

print(i)

output:

Monday

Tuesday

wednesday

Thursday

Friday

Saturday

Sunday

2、values()

dict1 = {"Monday":"星期一","Tuesday":"星期二","wednesday":"星期三","Thursday":"星期四","Friday":"星期五","Saturday":"星期六","Sunday":"星期日",}

for i in dict1.values():

print(i)

output:

星期一

星期二

星期三

星期四

星期五

星期六

星期日

3、items()

dict1 = {"Monday":"星期一","Tuesday":"星期二","wednesday":"星期三","Thursday":"星期四","Friday":"星期五","Saturday":"星期六","Sunday":"星期日",}

for i in dict1.items():

print(i)

output:

('Monday', '星期一')

('Tuesday', '星期二')

('wednesday', '星期三')

('Thursday', '星期四')

('Friday', '星期五')

('Saturday', '星期六')

('Sunday', '星期日')

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

dict1 = {"Monday":"星期一","Tuesday":"星期二","wednesday":"星期三","Thursday":"星期四","Friday":"星期五","Saturday":"星期六",}

# 添加

dict1["Sunday"]="星期日"

print(dict1)

output:

{'Monday': '星期一', 'Tuesday': '星期二', 'wednesday': '星期三', 'Thursday': '星期四', 'Friday': '星期五', 'Saturday': '星期六', 'Sunday': '星期日'}

# 修改

dict1 = {"Monday":"星期一","Tuesday":"星期二","wednesday":"星期三","Thursday":"星期四","Friday":"星期五","Saturday":"星期六","Sunday":"星期日",}

dict1["Sunday"]="星期天"

print(dict1)

output:

{'Monday': '星期一', 'Tuesday': '星期二', 'wednesday': '星期三', 'Thursday': '星期四', 'Friday': '星期五', 'Saturday': '星期六', 'Sunday': '星期天'}

# 删除

dict1 = {"Monday":"星期一","Tuesday":"星期二","wednesday":"星期三","Thursday":"星期四","Friday":"星期五","Saturday":"星期六","Sunday":"星期日",}

del dict1["Sunday"]

# 如果要删除的元素不存在,会抛出异常,可以先做个判断

dict1 = {"Monday":"星期一","Tuesday":"星期二","wednesday":"星期三","Thursday":"星期四","Friday":"星期五","Saturday":"星期六","Sunday":"星期日",}

if "Sunday" in dict1:

del dict1["Sunday"]

print(dict1)

output:

{'Monday': '星期一', 'Tuesday': '星期二', 'wednesday': '星期三', 'Thursday': '星期四', 'Friday': '星期五', 'Saturday': '星期六'}

4.4.5 字典推导式

import random

randomdict = {i:random.randint(10,100) for i in range(1,5)}

print("生成的字典为:",randomdict)

output:

生成的字典为: {1: 41, 2: 40, 3: 45, 4: 10}

# 拓展:值最大的字典

def max_pairs(dic):

if len(dic) == 0:

return dic

max_val = max(map(lambda v: v[1], dic.items()))

return [item for item in dic.items() if item[1] == max_val]

r = max_pairs({'a': -10, 'b': 5, 'c': 3, 'd': 5})

print(r) # [('b', 5), ('d', 5)]

# 拓展:合并两个字典

def merge_dict2(dic1, dic2):

return {**dic1, **dic2} # python3.5后支持一行代码实现合并字典

merge_dict({'a': 1, 'b': 2}, {'c': 3}) # {'a': 1, 'b': 2, 'c': 3}

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

python创建字典的两种方法要求键星期一到星期天_Python3笔记019 - 4.4 字典相关推荐

  1. mysql创建库几种方法_MySQL创建数据库的两种方法

    本文为大家分享了两种mysql创建数据库的方法,供大家参考,具体内容如下 第一种方法:使用 mysqladmin 创建数据库使用普通用户,你可能需要特定的权限来创建或者删除 mysql 数据库. 所以 ...

  2. python使用方法视频-Python读取视频的两种方法(imageio和cv2)

    用python读取视频有两种主要方法,大家可依据自己的需求进行使用. 方法一: 使用imageio库,没有安装的可用pip安装或自己下载,安装好后重启终端即可调用. import pylab impo ...

  3. Java学习笔记:创建线程的两种方法

    Java学习笔记:创建线程的两种方法 一.预备工作 1.创建Maven项目ThreadDemo 2.在pom.xml里添加依赖 二.继承Thread类创建子线程

  4. python遍历数组的两种方法及将print的内容写入文件中

    python遍历数组的两种方法 第一种,最常用的,通过for in遍历数组 colours = ["red","green","blue"] ...

  5. 《Axure RP7网站和APP原型制作从入门到精通(60小时案例版)》一第2章 母版详解2.1 创建母版的两种方法...

    本节书摘来自异步社区<Axure RP7网站和APP原型制作从入门到精通(60小时案例版)>一书中的第2章,第2.1节,作者 金乌,更多章节内容可以访问云栖社区"异步社区&quo ...

  6. Python创建多线程的三种方法

    Python创建多线程的三种方法 thread模块函数式创建线程 继承threading类创建多线程 threading模块函数式创建线程 使用总结 thread模块函数式创建线程 调用thread模 ...

  7. JS动态创建元素(两种方法)

    前言 创建元素有两种方法 1)将需要创建的元素,以字符串的形式拼接:找到父级元素,直接对父级元素的innnerHTML进行赋值. 2)使用Document.Element对象自带的一些函数,来实现动态 ...

  8. python3(4)--- python遍历数组的两种方法

    python遍历数组的两种方法 第一种,最常用的,通过for in遍历数组.其实本质就是取出来的是这个数组或者列表中的元素,和角标无关. colours = ["red",&quo ...

  9. python遍历数组的两种方法的代码

    工作过程中,把开发过程中较好的一些内容段备份一下,下面内容是关于python遍历数组的两种方法的内容,希望对小伙伴有用途. colours = ["red","green ...

最新文章

  1. 《操作系统》库函数与系统调用的区别和联系?
  2. 物联网技术概论的课程编号_选课推荐 | 第5期:物联网技术概论
  3. android 悬浮球简书,轻松自制flyme悬浮球
  4. java 抽象类与接口区别是什么_JAVA中抽象类与接口的区别,分别在什么情况下使用它们...
  5. 中国水密门市场趋势报告、技术动态创新及市场预测
  6. Python:文件的读取、创建、追加、删除、清空
  7. node.js安装详细教程
  8. Android 学生管理系统
  9. 金格公司对致远HandWrite产品的测试地址
  10. 卫计委电子病历架构基本概念
  11. (Spring+SpringMVC+mybatis)SSM企业职工工资管理系统
  12. CSS基础常识问答(二)
  13. 深圳市自助图书馆详细分布地址
  14. 白底图片转换为蓝底图片
  15. 无为而无不为和企业管理
  16. StarUML 3 中文文档 包图
  17. 用户计算机名更改为英文,win10将用户名改为英文怎么改_win10如何更改用户名为英文图文教程-系统城...
  18. Django书籍下载地址收集
  19. SpringCloud-Netfilx
  20. 护眼灯真的可以保护眼睛吗?2022双十二选哪款护眼灯对孩子眼睛好

热门文章

  1. 基于javaweb的红酒朔源管理系统(java+ssm+jsp+layui+jquery+mysql)
  2. 关于电信、网通检测ADSL共享上网的技术手段
  3. ST-GCN源码运行完整版(含OpenPose编译安装)及常见问题
  4. Android 开发中使用硬件加速
  5. PHP编写helloword,如何写第一个php程序——helloword
  6. QTP(UFT)安装及使用自带的飞机订票系统测试
  7. windows10权限被改为System Managed Account Group的处理方法
  8. 空压机设备远程监控解决方案
  9. 分享Android KTX + Kotlin协程 组合使用
  10. 希尔伯特黄变换python实现