Python即学即用教程-第5章 字典与集合

Python即学即用教程-第5章 字典与集合

教学重点
掌握字典的操作
掌握集合的操作
了解字典与集合的区别

5.1 字典概述

•所谓的字典,其实是由一对对的“键:值”组合而成的。每一个键都跟一个值相关联,你可以通过键来访问与之对应的值。在很多情况下,使用字典比使用列表更合适,比如:
保存用户的电话号码,其中键是用户名,值是电话号码。
存储文件的修改时间,其中键是文件名,值是修改时间。
表示棋盘的状态,其中键是由坐标组成的元组,值是状态。

5.2 创建字典

•在Python中,我们可以使用大括号“{}”来创建一个字典。
•语法:
dictname= { key1: value1, key2: value2, … , keyN: valueN}
•对于Python中的字典,需要特别注意以下3点。
键(key)必须是唯一的,字典中不能出现重复的键。
键(key)必须是不可变的,可以使用数字、字符串或元组,但不能使用列表。
值(value)可以不唯一,可以是任意数据类型(包括数字、字符串、列表、元组和字典)。

5.3 基本操作

•与列表相似,对于字典键值对的基本操作,主要有4种:获取某个键的值、修改某个键的值、添加键值对、删除键值对。
1、获取某个键的值
•如果想要获取字典中某一个键的值,有两种方式可以实现:一种是使用dict[key],另一种是使用get()方法。
•语法:
dict[key]
dict.get(key)
2、修改某个键的值
•获取字典的某一键的值我们是知道了,但如果想要给某一个键赋一个新值,此时又应该怎么做呢?也是通过dict[key]这种方式来实现的。
•语法:
dict[key] = value
3、增加键值对
•在Python中,如果想要为字典增加一个新的键值对,也是使用dict[key]这种方式来实现。
•语法:
dict[key] = value
4、删除键值对
•与列表一样,我们也是使用del关键字来删除字典中的键值对。
•语法:
del dict[key]

5.4 字典方法

•字典的方法很有用(如下表所示),但其使用频率可能没有列表和字符串的方法那么高。你可大致浏览一下本节,了解字典提供了哪些方法,等需要使用特定方法时再回过头来详细研究其工作原理。
字典的方法
在这里插入图片描述
1、清空字典:clear()
•在Python中,我们可以使用clear()方法用于清空一个字典。
•语法:
dict.clear()
2、复制字典:copy()
•在Python中,我们可以使用copy()方法复制一个字典。
•语法:
dict.copy()
3、更新字典:update()
•在Python中,我们可以使用一个字典所包含的键值对来更新已有的字典。
•语法:
dict1.update(dict2)
4、创建新字典:fromkeys()
•在Python中,我们可以使用fromkeys()方法来创建一个新字典。
•语法:
dict.fromkeys(seq, value)
5、设置默认值:setdefault()
•字典的setdefault()方法和get()方法相似。如果键存在于字典中,则返回该键对应的值;如果键不存在于字典中,则将该键添加到字典中且设置一个默认值,最后返回其默认值。
•语法:
dict.setdefault(key, value)
6、获取所有键:keys()
•在Python中,我们可以使用keys()方法来获取字典中所有的键。
•语法:
dict.keys()
7、获取所有值:values()
•在Python中,我们可以使用values()方法来获取字典中所有的值。
•语法:
dict.values()
8、获取所有键值:items()
•在Python中,我们可以使用items()方法来同时获取字典中所有的键和值。
•语法:
dict.items()

5.5 更多实用操作

•除了前面介绍的内容之外,还有一些比较有用的字典操作,主要包括获取字典长度、检索字典、合并字典等。
1、获取长度:len()
•在Python中,我们也是使用len()函数来获取一个字典的长度。所谓“字典的长度”,指的是键值对的个数。
•语法:
len(dict)
2、检索字典:in、not in
•我们可以使用in运算符来判断某个键是否“存在”于字典中,也可以使用not in运算符来判断某个键是否“不存在”于字典中。
•语法:
key in dict
key not in dict
3、合并字典
•Python 3.9新增了一个“|”运算符,它可以用来快速合并两个或多个字典。
•语法:
dict1| dict2
4、字典推导式
•在Python中,我们可以使用“推导式”的方式来快速生成一个字典。这种方式叫做“字典推导式”或“字典生成式”。
•语法:
字典名 = {key: value for (key, value) in seq}

5.6 集合概述

•除了前面介绍的内容之外,还有一些比较有用的字典操作,主要包括获取字典长度、检索字典、合并字典等。
1、集合简介
•在Python中,我们也是使用大括号“{}”来创建一个集合。
•语法:
setname= {value1, value2, … , valueN}
•集合是由多个值组成的,两个值之间用英文逗号(,)隔开。对于集合,你需要注意以下3点。
集合不会出现相同的值,如果有相同的值,则只会保留一个,这个跟数学中的集合一样。
序列(列表、元组、字符串)是有序的,而字典跟集合是无序的。
序列是有序的,因此可以通过下标的方式来获取某一个元素,但是字典和集合都不可以。
2、基本操作
•对于remove()方法,如果元素不存在,则Python会报错。因此需要先使用in判断元素是否存在。实际上,还有一种更好的方式,那就是使用集合独有的discard()方法。它们之间的区别如下。
remove():如果元素存在,则删除该元素。如果元素不存在,则Python会报错。
discard():如果元素存在,则删除元素;如果元素不存在,则不执行任何操作。
3、集合操作
•在数学中,集合常见的操作有3种:求交集、求并集、求差集。实际上,Python中的集合也有这3种操作。
•语法:

{} & {} # 求交集
{} | {} # 求并集
{} -{} # 求差集

4、集合推导式
•在Python中,我们可以使用“推导式”的方式来快速生成一个集合。这种方式叫做“集合推导式”或“集合生成式”。
•语法:
集合名 = {表达式 for 变量名 in 可迭代对象}
•列表、字典和集合这三个的推导式,都是通过循环和条件判断的配合来实现的,它们之间的区别如下。
列表推导式返回一个列表,整个表达式需要写在“[]”内部。
字典推导式返回一个字典,整个表达式需要写在“{}”内部。
集合推导式返回一个集合,整个表达式需要写在“{}”内部。
5、应用场景
•使用set()函数可以快速实现列表去重。

5.7 试一下:统计数字出现的次数

•请输入一串数字,然后统计每一个数字出现的次数,并且把结果保存到一个字典中。

5.8 试一试:统计出现次数最多的字母

•如果有一个字符串’PythonGoJavaScriptPHP’,请统计出现次数最多的字母,这里不区分大小写。

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值