零基础入手!Python中字典与集合的使用指南
off999 2024-10-13 04:21 49 浏览 0 评论
全文共5092字,预计学习时长10分钟
本文将介绍Python的内置集合模块,用于支持集合和键值对等数学概念。
什么是集合?
集合是一组用于储存唯一值的序列。
初始化
可使用花括号{}定义集合。
>>> numSet = {1, 2, 3, 4, 5}
>>> print(numSet)
{1, 2, 3, 4, 5}
若在初始化中键入重复值,则只保留一个元素。
>>> numSet = {1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5}
>>> print(numSet)
{1, 2, 3, 4, 5}
也可使用内置的 set函数进行空集初始化。
>>> emptySet = set()
>>> print(emptySet)
set()
注意:集合元素是不可更改的,在集合中加入可变对象会报错。
>>> tuple1 = (1, 2, 3)
>>> tuple2 = (4, 5, 6)
>>> tupleSet = {tuple1, tuple2} # no error as tuples are immutable
>>> print(tupleSet)
{(4, 5, 6), (1, 2, 3)}
>>> list1 = [1, 2, 3]
>>> list2 = [4, 5, 6]
>>> listSet = {list1, list2} #will raise error as lists are mutable
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
加入元素
使用内置 add函数向集合中加入元素。
>>> numSet = {1, 2, 3, 4, 5}
>>> numSet.add(6)
>>> print(numSet)
{1, 2, 3, 4, 5, 6}
注意:在集合中加入重复元素是无效的,此情况下也不会报错。
>>> numSet = {1, 2, 3, 4, 5}
>>> numSet.add(5)
>>> print(numSet)
{1, 2, 3, 4, 5}
删除元素
使用内置remove函数删除集合中元素。
>>> numSet = {1, 2, 3, 4, 5}
>>> numSet.remove(5)
>>> print(numSet)
{1, 2, 3, 4}
注意:删除集合中不存在的元素不会报错。
>>> numSet = {1, 2, 3, 4, 5}
>>> numSet.remove(99)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 99
集合长度
使用内置len函数查找集合长度。
>>> numSet = {1, 2, 3, 4, 5}
>>> len(numSet)
5
查找
使用in运算符查找集合中元素。
>>> numSet = {1, 2, 3, 4, 5}
>>> 2 in numSet
True
>>> 99 in numSet
False
接下来介绍如何执行集合操作。
交集
使用 &运算符寻找两个集合的交集。
>>> setA = {1, 2, 3, 4, 5}
>>> setB = {3, 4, 5, 6, 7}
>>> intersection = setA & setB
>>> print(intersection)
{3, 4, 5}
并集
使用|运算符将两个集合合并。
>>> setA = {1, 2, 3, 4, 5}
>>> setB = {3, 4, 5, 6, 7}
>>> union = setA | setB
>>> print(union)
{1, 2, 3, 4, 5, 6, 7}
补集
补集返回值为仅在第一个集合中出现的值。
使用-运算符寻找补集。
>>> setA = {1, 2, 3, 4, 5}
>>> setB = {3, 4, 5, 6, 7}
>>> difference = setA - setB
>>> print(difference)
{1, 2}
>>> reverseDifference = setB - setA
>>> print(reverseDifference)
{6, 7}
集合对称差
对称差返回值是由只属于两个集合中任一集合,而非全部集合的元素组成的集合。
使用 ^ 运算符寻找两个集合的对称差。
>>> setA = {1, 2, 3, 4, 5}
>>> setB = {3, 4, 5, 6, 7}
>>> symmDiff = setA ^ setB
>>> print(symmDiff)
{1, 2, 6, 7}
检查超集
若集合A含有集合B中所有元素,则集合A为集合B的超集。
使用>=运算符检验左侧集合是否为右侧集合的超集。
>>> bigSet = {1, 2, 3, 4, 5}
>>> smallSet = {3, 4}
>>> isSuperSet = bigSet >= smallSet
>>> print(isSuperSet)
True
使用<= 运算符检验右侧集合是否为左侧集合的超集。
>>> bigSet = {1, 2, 3, 4, 5}
>>> smallSet = {3, 4}
>>> isSuperSet = smallSet <= bigSet
>>> print(isSuperSet)
True
如何使用字典?
在Python中,字典用于储存键值对。
初始化
同样可以使用花括号{}初始化字典,并使用key :value 语法声明键值对。
>>> nameToNumber = {"John" : 1, "Harry" : 2, "Jacob" : 3}
>>> print(nameToNumber)
{'John': 1, 'Harry': 2, 'Jacob': 3}
也可使用内置dict函数初始化空字典。
>>> emptyDict = dict()
>>> print(emptyDict)
{}
还可直接使用空花括号{}初始化空字典。
>>> emptyDict = {}
>>> print(emptyDict)
{}
注意:不可改变字典中的键。尝试使用可变键创建字典会报错。
>>> tupleA = (1, 2, 3) # tuples are immutable
>>> stringA = "I love Python!" # strings are immutable
>>> floatA = 3.14 # float values are immutable
>>> dictA = {tupleA : True, stringA : False, floatA : True} # no error as all keys are immutable
>>> print(dictA)
{(1, 2, 3): True, 'I love Python!': False, 3.14: True}
>>> listB = [1, 2, 3] #list is mutable
>>> dictB = {listB : True} # raises an error as lists are mutable
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
获取数据
使用方括号([])从字典中获取键值。
>>> nameToNumber = {"John" : 1, "Harry" : 2, "Jacob" : 3}
>>> JohnsNumber = nameToNumber["John"]
>>> print(JohnsNumber)
1
注意:寻找不存在的键会报错。
>>> nameToNumber = {"John" : 1, "Harry" : 2, "Jacob" : 3}
>>> nameToNumber["Sam"]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'Sam'
为避免报错,可以使用内置 get函数。使用该函数寻找不存在的键返回值为None,但不会报错。
>>> nameToNumber = {"John" : 1, "Harry" : 2, "Jacob" : 3}
>>> johnsNumber = nameToNumber.get("John")
>>> print(johnsNumber)
1
>>> samsNumber = nameToNumber.get("Sam"
>>> print(samsNumber)
None
若字典中缺少键,则可以使用get 函数返回默认值。将所需的默认值作为第二个参数传递给get 函数。
>>> nameToNumber = {"John" : 1, "Harry" : 2, "Jacob" : 3}
>>> johnsNumber = nameToNumber.get("John", 99)
>>> print(johnsNumber)
1
>>> samsNumber = nameToNumber.get("Sam", 99)
>>> print(samsNumber)
99
修改数据
使用内置setdefault 函数将数据插入字典。
只有在字典中不存在该键时,setdefault才会在字典中创建新键值对。若该键存在,也不会被覆盖。
>>> nameToNumber = {"John" : 1, "Harry" : 2, "Jacob" : 3}
>>> nameToNumber.setdefault("Sam", 4)
4
>>> print(nameToNumber)
{'John': 1, 'Harry': 2, 'Jacob': 3, 'Sam': 4}
>>> nameToNumber.setdefault("Sam", 99) # no changes as the key already exists
4
>>> print(nameToNumber)
{'John': 1, 'Harry': 2, 'Jacob': 3, 'Sam': 4}
使用内置update函数修改字典中现存值。
>>> nameToNumber = {"John" : 1, "Harry" : 2, "Jacob" : 3}
>>> nameToNumber.update({"Sam" : 4}) # creates new entry
>>> print(nameToNumber)
{'John': 1, 'Harry': 2, 'Jacob': 3, 'Sam': 4}
>>> nameToNumber.update({"Sam" : 99}) # updates existing entry
>>> print(nameToNumber)
{'John': 1, 'Harry': 2, 'Jacob': 3, 'Sam': 99}
也可使用方括号修改现存值。
>>> nameToNumber = {"John" : 1, "Harry" : 2, "Jacob" : 3}
>>> nameToNumber["Sam"] = 4 # creates new entry
>>> print(nameToNumber)
{'John': 1, 'Harry': 2, 'Jacob': 3, 'Sam': 4}
>>> nameToNumber["Sam"] = 99 # updates existing entry
>>> print(nameToNumber)
{'John': 1, 'Harry': 2, 'Jacob': 3, 'Sam': 99}
删除数据
使用 del命令删除字典中的键。
>>> nameToNumber = {"John" : 1, "Harry" : 2, "Jacob" : 3}
>>> del nameToNumber["John"]
>>> print(nameToNumber)
{'Harry': 2, 'Jacob': 3}
注意:删除不存在的键会报错。
>>> nameToNumber = {"John" : 1, "Harry" : 2, "Jacob" : 3}
>>> del nameToNumber["Sam"]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'Sam'
迭代
使用内置keys功能在字典中的键上进行迭代。
>>> nameToNumber = {"John" : 1, "Harry" : 2, "Jacob" : 3}
>>> names = list(nameToNumber.keys()) # using list() to store in a list
>>> print(names)
['John', 'Harry', 'Jacob']
可以使用内置的values函数迭代字典中的值。
>>> nameToNumber = {"John" : 1, "Harry" : 2, "Jacob" : 3}
>>> values = list(nameToNumber.values())
>>> print(values)
[1, 2, 3]
留言 点赞 关注
我们一起分享AI学习与发展的干货
如需转载,请后台留言,遵守转载规范
相关推荐
- 高清多功能视频播放器(多功能视屏播放器)
-
多功能高清视频播放器使用起来非常简单,首先将视频文件传输到播放器中,然后通过遥控器或者触摸屏操作选择要播放的视频。用户可以根据需要进行视频播放设置,如调整音量、播放速度等。此外,播放器还支持多种视频格...
- 老版街机游戏大全(开火车老虎机(单机版))
-
横版过关:快打旋风,恐龙新世纪,名将,吞食天地赤壁之战,圆桌武士,变身忍者,惩罚者,飞机射击:彩京打击者1945,战国世纪,四国战机,太阳表决,格斗:街霸系列,KOF系列,VR战士系列,铁拳系列,死或...
-
- 内存清理大师(内存清理大师V1.2.6官方版)
-
1、打开手机清理大师应用APP2、点击扫描垃圾3、在弹出来的窗口点击清理垃圾4、最后即可清理完成在手机中设置里的通用里储存空间与iCloud进行清除。操作方法点开设置->通用->储存空间与iCloud用量点击储存空间-...
-
2026-01-23 17:03 off999
- 登录器下载安装(云端辅助登录器下载安装)
-
有其他的程序正在使用中,你电脑重新启动一次再删除dlq试试,或者把其他的程序都关了然后再重新安装一次再删除.祝你好运!!!!!!!!!!!!1国服的下载很简单,和当年CF、逆战的方式一样,我们直接...
-
- 下载拼音打字输入法(下载拼音汉字输入法)
-
你下载百度手机输入法,默认的就是双拼,可以自己选择26键拼音输入、右键单击桌面右下角的搜狗输入法工具条,将鼠标移到“软键盘”上,然后选择“拼音字母”即可使用这个功能。输入法使用技巧:1、输入法一般支持符号输入,可以右键单击候选框,之后点击“...
-
2026-01-23 16:43 off999
- 彩铃定制(彩铃定制流程)
-
演示品牌型号:联想拯救者R720;系统:Windows10;软件:Chrome88.0。1、用浏览器搜索定制手机彩铃,点击移动官网,进入后点击左上角登录,账户就是自己的手机号,密码就是在营业厅办理需要...
- 同他聊交友软件(他聊软件吗)
-
好他聊app一款优质便捷的单身男女在线互动交友平台,来他聊app遇见更多有趣有料的小伙伴,支持语音通话视频互动,更可以每日分享生活动态。他聊app你可以通过文字、语音、视频等多种方式与同城附近异性聊天...
- 360官方(360官方正版免费下载安装)
-
https://yunpan.360.cn/360云盘是奇虎360科技的分享式云存储服务产品。为广大普通网民提供了存储容量大、免费、安全、便携、稳定的跨平台文件存储、备份、传递和共享服务。360云盘是...
-
- 漫画全免费的看漫画软件下载
-
要是看动漫的话可以用迅雷看看或者PPTV,但是漫画的话4399小游戏里面就有漫画有漫画岛、漫画大全、爱漫画、腾讯动漫、大角虫、快看漫画、布卡漫画和微信读书。1、漫画岛:是一款适用于手机的热门漫画阅读软件。最全的二次元看漫画神器。分安卓版和...
-
2026-01-23 15:43 off999
- 服务器品牌前十大排名(国产服务器品牌前十大排名)
-
品牌排名企业1.Dell戴尔2.Hewlett-Packard惠普3.IBMIBM4.NetApp美国网比较安全系统5.Hitachi日立6.Or...
- mp3在线剪辑工具免费(mp3在线剪切软件下载)
-
风云音频处理大师风云音频处理大师是一款相当出色的专业化音频处理软件。小编使用比较多的也是风云音频处理大师,它的功能全面,能够帮助用户快速上手音频剪辑,还可以对音频的噪音进行降噪处理,对音频进行调速、拼...
- photoshop怎么抠图(ps怎么抠出想要的部分)
-
首先用ps打开要抠的图片,然后鼠标点击菜单栏:选择-色彩范围2,吸管吸取要抠的水,这里要慢慢调节,选择水的最佳位置。选取后,鼠标点击确定3,这时候抠水的部分就被选中,我们就按键盘上的ctrl+j复制,...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
win7系统还原步骤图解(win7还原电脑系统的步骤)
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
linux软件(linux软件图标)
-
失业程序员复习python笔记——条件与循环
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
