python课本学习第六章
一、字典的概念
#示例代码
student = {'name':'xx','name':'yy','grade1':98.1,'grade':99.2}
print(student)
#output:
{'name':'yy','grade1':98.1,'grade':99.2}
字典的特征:
- 字典中的元素是以键值对的形式出现的
- 键可以重复,但是值不能重复
- 键是不可变数据类型,值是可变数据类型
二、字典的创建
#method 1:
dict1 = {} #空字典的创建
#method 2:dict()函数无参构造
items = [('a','b'),('d','e')]
d = dict(items)
#method 3:dict()函数有参构造
d = dict{name = 'xx', grades = 99}
print(d)
#output:
{'name':'xx','grade':99}
三、字典的常用操作
1、计算元素个数
# len()函数
len(dict)
2、访问元素值
#字典通过元素的键来访问值
student = {'name':'xx','name':'yy','grade1':98.1,'grade':99.2}
print(items['name'])
#output:yy
#get(键)函数访问值:当不确定字典中是否含有键时
student = {'name':'xx','name':'yy','grade1':98.1,'grade':99.2}
ky = get('name')
print(ky)
#output: yy
#字典中不存在键时,不会报错,会返回None
3、修改元素值
字典可以通过键来修改值
student = {'name':'xx','name':'yy','grade1':98.1,'grade':99.2}
items['name'] = 'u'
4、添加元素
#method 1:通过键修改值时,如果键不存在,则会在字典中添加该键值对
student = {'name':'xx','name':'yy','grade1':98.1,'grade':99.2}
items['name'] = 's'
键值对{'name':'s'}被添加到字典中
#method 2:通过update()函数修改某键对应的值或者添加元素
student = {'name':'xx','name':'yy','grade1':98.1,'grade':99.2}
ys = {'a':'b'}
student.update(ys)
5、删除元素
#删除字典中某个元素
#method 1:del 字典名[键]
student = {'name':'xx','name':'yy','grade1':98.1,'grade':99.2}
del student['name']
#删除字典中的全部元素,使字典称为空字典
# clear函数()
student.clear()
#删除字典,字典将不存在
# del 字典名
del student
6、复制字典
# copy()函数
student = {'name':'xx','name':'yy','grade1':98.1,'grade':99.2}
s = student.copy()
7、成员运算
- 字典中可以使用成员运算符(in、not in)来判断某键是否在字典中
- 该运算符只能判断键是否在字典中,不能判断值是否在字典中
student = {'name':'xx','name':'yy','grade1':98.1,'grade':99.2}
print('name' in student)
#output: True
8、设置默认键值对
- setdefault()函数:为字典中某个键设置一个默认值
student = {'name':'xx','name':'yy','grade1':98.1,'grade':99.2}
name = student.setdefault('school','uu')
name = student.setdefault('school','yy')#无效操作,因为上一行已经给school键设置了默认值
9、获取字典中的所有键
- keys()函数可以用来获取字典中所有元素的键
print(student.keys())
for key in stdudent.keys():
print(key)
10、获取字典中的所有值
- values()函数可以获取字典中所有元素所对应的值
print(student.values())
for value in stdudent.values():
print(value)
11、获取字典中的所有键值对
- items()函数可以获取字典中所有的键值对
print(student.items())
for item in stdudent.items():
print(item)
12、随机删除元素
- popitem()函数(返回值为元组)可以随机返回并删除一个元素
student = {'name':'xx','name':'yy','grade1':98.1,'grade':99.2}
item = student.popitem()
- pop()函数(返回值为值,不是键值对)可以根据指定的键删除元素
student = {'name':'xx','name':'yy','grade1':98.1,'grade':99.2}
item = student.pop('name')
四、集合的概念
1、概念
- 集合使用大括号表示,元素类型可以是数字类型、字符串、元组,但不可以是列表、字典
2、分类
- 使用大括号创建的集合属于可变集合
- 不可变集合
3、集合的创建
#通过set()创建可变集合
set1 = set('u')
#通过frozenset()创建不可变集合
fset = frozenset('v')
4、集合的用途——去重
list1 = [1, 1, 2, 2, 3, 4]
set1 = set(list1)
五、集合的常用操作
1、添加元素
# add()函数
set1 = {1, 2, 3}
set1.add(4)
set2 = {5, 6}
set1.update(set2)
2、删除元素
set1 = {1, 2, 3, 4}
# remove()函数:remove()删除不存在时会报错
set1.remove(3)
# discard()函数:discard()删除不存在元素时不会报错
set1.discard(3)
3、集合运算

4、集合的遍历
set1 = {1, 2, 3, 4}
for num in set1:
print(num)
六、字典推导与集合推导
- 字典推导
- 使用大括号包围
- 需要两个表达式,一个生成key,一个生成value,两个表达式之间用冒号隔开
- 结果返回字典
#eg1:
dict1 = {x : x * x for x in range(5)}
#eg2
dict1 = [(86,'china'),(91,'india')]
dict2 = {country : code for code, country in dict1}
print(dict2)
#output:交换城市与序号的顺序
- 集合推导
集合推导与列表推导类似,只需要将中括号改为大括号
set1 = {x * x for x in range(5)}
python课本学习第六章的更多相关文章
- Python爬虫学习==>第六章:爬虫的基本原理
学习目的: 掌握爬虫相关的基本概念 正式步骤 Step1:什么是爬虫 请求网站并提取数据的自动化程序 Step2:爬虫的基本流程 Step3:Request和Response 1.request 2. ...
- 201671010140. 2016-2017-2 《Java程序设计》java学习第六章
java学习第六章 本周对与java中的接口,lambda表达式与内部类进行了学习,以下是我在学习中的一些体会: 1.接口: <1>.接口中的所有常量必须是public sta ...
- 进击的Python【第十六章】:Web前端基础之jQuery
进击的Python[第十六章]:Web前端基础之jQuery 一.什么是 jQuery ? jQuery是一个JavaScript函数库. jQuery是一个轻量级的"写的少,做的多&quo ...
- 【转载】Gradle学习 第六章:构建脚本基础
转载地址:http://ask.android-studio.org/?/article/11 6.1. Projects and tasks 项目和任务Everything in Gradle si ...
- Java基础知识二次学习--第六章 常用类
第六章 常用类 时间:2017年4月26日16:14:49~2017年4月26日16:56:02 章节:06章_01节~06章_06节 视频长度:20:57+1:15+8:44+1:26+11:2 ...
- C#高级编程 (第六版) 学习 第六章:运算符和类型强制转换
第六章 运算符和类型强制转换 1,运算符 类别 运算符 算术运算符 + - * / % 逻辑运算符 & | ^ ~ && || ! 字符串连接运算符 + 增量和减量运算符 ++ ...
- python 教程 第十六章、 正则表达式
第十六章. 正则表达式 1) 匹配多个表达式 记号 re1|re2 说明 匹配正则表达式re1或re2 举例 foo|bar 匹配 foo, bar 记号 {N} 说明 匹配前面出 ...
- 深度学习框架PyTorch一书的学习-第六章-实战指南
参考:https://github.com/chenyuntc/pytorch-book/tree/v1.0/chapter6-实战指南 希望大家直接到上面的网址去查看代码,下面是本人的笔记 将上面地 ...
- Python基础学习(六)
前几天一直在练手廖雪峰老师的python课程,接下来继续学习,由于面向对象编程这一课相对理论便不在此练手,直接上手面向对象高级编程. 一.使用 __slots__ 一般情况下一个class是可以绑定一 ...
- Python爬虫学习==>第十一章:分析Ajax请求-抓取今日头条信息
学习目的: 解决AJAX请求的爬虫,网页解析库的学习,MongoDB的简单应用 正式步骤 Step1:流程分析 抓取单页内容:利用requests请求目标站点,得到单个页面的html代码,返回结果: ...
随机推荐
- [转帖]Archery
Archery SQL 审核查询平台 文档 | FAQ | Releases 功能清单 数据库 查询 审核 执行 备份 数据字典 慢日志 会话管理 账号管理 参数管理 数据归档 My ...
- [转帖]tidb数据库5.4.3和6.5.3版本性能测试对比
https://tidb.net/blog/5454621f 一.测试需求: 基于历史原因,我们的业务数据库一直使用5.4.3,最近由于研发提出需求:需要升级到6.5.3版本,基于版本不同,需要做 ...
- [转帖]clickhouse使用clickhouse-keeper代替zookeeper
目录 异常现象: 1. clickhouse的异常日志 2. 追踪对应节点的zookeeper日志 使用clickhouse-keeper代替 zookeeper的步骤: 1: 准备 clickhou ...
- [粘贴]TiFlash
TiFlash 是 TiDB HTAP 形态的关键组件,它是 TiKV 的列存扩展,在提供了良好的隔离性的同时,也兼顾了强一致性.列存副本通过 Raft Learner 协议异步复制,但是在读取的时候 ...
- [转帖]88. sys_kwr
88. sys_kwr ¶ 88.1. 插件sys_kwr简介 ¶ 插件sys_kwr是KingbaseES 的一个扩展插件.主要功能是通过周期性自动记录性能统计相关的快照,分析出KingbaseES ...
- ESXi重置密码以及修改网络IP地址的方法
Study From https://www.cnblogs.com/mk21/p/15784082.html 前期公司有部分虚拟化的服务器因为只通过vCenter进行管理. 导致密码遗失. 最近因为 ...
- 京东云RASP云原生安全免疫创新实践
作者:京东云 刘一鑫 1 背景 随着网络攻击事件整体呈上升趋势,应用作为网络入口承载着大量业务和流量,因此成为了安全的重灾区.黑客往往借助自动化的工具以及安全漏洞,对Web进行漏洞扫描和探测,进而利用 ...
- 学到一个编码技巧:用重复写入代替if判断,减少程序分支
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 近期阅读了rust标准库的hashbrown库(也就是一个 ...
- protojson简介
google.golang.org/protobuf/encoding/protojson 是 Go 语言中的一个库,用于处理 Protocol Buffers(protobuf)和 JSON 之间的 ...
- openAI发布v0.2.0了
时隔20天,OpenAI从v0.0.1升级到了v0.2.0.与v0.0.1版相比,v0.2.0版主要做了以下改动: 把cmd目录下微信公众号的相关服务迁移到了这里 完善了cmd下的测试服务,针对ope ...