【Python】一文带你掌握数据容器之集合,字典

这篇具有很好参考价值的文章主要介绍了【Python】一文带你掌握数据容器之集合,字典。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录:

一、集合

思考:我们目前接触到了列表、元组、字符串三个数据容器了。基本满足大多数的使用场景为何又需要学习新的集合类型呢?

通过特性来分析:
(1)列表可修改、支持重复元素且有序
(2)元组、字符串不可修改、支持重复元素且有序

大家有没有看出一些局限?

局限就在于:它们都支持重复元素

如果场景需要对内容做去重处理,列表、元组、字符串就不方便了

而集合,最主要的特点就是:不支持元组的重复(自带去重功能)、并且内容无序


1.集合的定义

基本语法:

# 定义集合字面量
{元素,元素,......,元素}

# 定义集合变量
变量名称 = {元素,元素,......,元素}

# 定义空集合
变量名称 = set()

 和列表、元组、字符串等定义基本相同:

列表使用[  ]

元组使用( )

字符串使用"  "

集合使用{  }


 2.集合的常用操作

首先,因为集合是无序的,所以集合不支持:下标索引访问但是集合和列表一样,是允许修改的,所以我们来看看集合的修改方法

编号 操作 作用
1 集合.add(元素) 集合内添加一个元素
2 集合remove(元素) 移除集合内指定的元素
3 集合.pop() 从集合中随机取出一个元素
4 集合.clear() 将集合清空
5 集合1.difference(集合2) 得到一个新集合,内含2个集合的差集原有的2个集合内容不变
6 集合1.differenceupdate(集合2) 在集合1中,删除集合2中存在的元素集合1被修改,集合2不变
7 集合1.union(集合2) 得到1个新集合,内含2个集合的全部元素原有的2个集合内容不变
8 len(集合) 得到一个整数,记录了集合的元素数量
(1)添加新元素

语法:集合.add(元素)将指定元素,添加到集合内

结果:集合本身被修改,添加了新元素

my_set = {"Hello", "World"}
my_set.add("bite")
print(my_set)  # 结果:{'World', 'bite', 'Hello'}(顺序可能会变)
(2) 移除元素

语法:集合.remove(元素),将指定元素,从集合内移除

结果:集合本身被修改,移除了元素

my_set = {"Hello", "World"}
my_set.remove("World")
print(my_set)  # 结果:{'Hello'}
 (3) 从集合中随机取出元素

语法:集合.pop(),功能,从集合中随机取出一个元素

结果:会得到一个元素的结果。同时集合本身被修改,元素被移除

my_set = {"Hello", "World"}
element = my_set.pop()
print(my_set)  # 结果:{'Hello'}
print(element)  # 结果:World
(4) 清空集合

语法:集合.clear(),功能,清空集合

结果:集合本身被清空

my_set = {"Hello", "World"}
my_set.clear()
print(my_set)  # 结果:set()
 (5)取出2个集合的差集

语法:集合1.difference(集合2),功能: 取出集合1和集合2的差集 (集合1有而集合2没有的)

结果:得到一个新集合,集合1和集合2不变

set1 = {1, 2, 3}
set2 = {1, 5, 6}
set3 = set1.difference(set2)
print(set3)  # 结果:{2, 3}
print(set2)  # 结果:{1, 5, 6}
print(set1)  # 结果:{1, 2, 3}
(6) 消除2个集合的差集

语法:集合1.difference_update(集合2)

功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素

结果:集合1被修改,集合2不变

set1 = {1, 2, 3}
set2 = {1, 5, 6}
set1.difference_update(set2)
print(set1)  # 结果:{2, 3}
print(set2)  # 结果:{1, 5, 6}
(7) 2个集合合并

语法:集合1.union(集合2)

功能:将集合1和集合2组合成新集合

结果: 得到新集合,集合1和集合2不变

set1 = {1, 2, 3}
set2 = {1, 5, 6}
set3 = set1.union(set2)
print(set3)  # 结果:{1, 2, 3, 5, 6}
print(set1)  # 结果:{1, 2, 3}
print(set2)  # 结果:{1, 5, 6}

二、字典

思考:老师有一份名单,记录了学生的姓名和考试总成绩,现在需要将其通过Python录入至程序中,并可以通过学生姓名检索学生的成绩,由此引入了字典,使用字典可以用key取出 Value的操作

1.字典的定义

字典的定义,同样使用{ },不过存储的元素是一个个的 : 键值对,如下语法:

# 定义字典字面量
{key: value, key: value, ......, key: value}

# 定义字典变量
 my_dict = {key: value, key: value, ......, key: valuel}

# 定义空字典
my_dict = {}    # 空字典定义方式1
my_dict = dict()  # 空字典定义方式2

注意: 字典内Key不允许重复,重复添加等同于覆盖原有数据

# 定义重复Key的宇典
my_dict1 = {"王力鸿": 99,"王力鸿": 88,"林俊节": 77}
print(f"重复key的字典的内容是:{my_dict1}")

# 结果:重复key的字典的内容是:{'王力鸿':88,林俊节':77}

2.字典数据的获取

字典同集合一样,不可以使用下标索升

但是字典可以通过Key值来取得对应的Value

# 语法,字典[Key]可以取到对应的value
stu_score = {"李四": 99, "张三": 88,"王二麻子": 77}
print(stu_score["李四"])   # 结果:99
print(stu_score["张三"])   # 结果:88
print(stu_score["王二麻子"])  # 结果:77

3.字典的嵌套

字典的Key和Value可以是任意数据类型(Key不可为字典)

那么,就表明,字典是可以嵌套的

需求如下: 记录学生各科的考试信息

【Python】一文带你掌握数据容器之集合,字典,Python,python,开发语言

stu_score_dict = {
    "王力鸿": {
        "语文": 77,
        "数学": 66,
        "英语": 33
    }, "周杰轮": {
        "语文": 88,
        "数学": 86,
        "英语": 55
    }, "林俊节": {
        "语文": 99,
        "数学": 96,
        "英语": 66
    }
}
print(f"学生的考试信息是:{stu_score_dict}")

# 结果:学生的考试信息是:{'王力鸿': {'语文': 77, '数学': 66, '英语': 33}, '周杰轮': {'语文': 88, '数学': 86, '英语': 55}, '林俊节': {'语文': 99, '数学': 96, '英语': 66}}

从嵌套字典中获取数据:

score = stu_score_dict["周杰轮"]["语文"]
print(f"周杰轮的语文分数是:{score}")

# 结果:周杰轮的语文分数是:88

4.字典的常用操作

编号 操作 作用
1 字典[Key] 获取指定Key对应的Value值
2 字典[Key]= Value 添加或更新键值对
3 字典.pop(Key) 取出Key对应的Value并在字典内删除此Key的键值对
4 字典.clear() 清空字典
5 字典.keys() 获取字典的全部Key,可用于for循环遍历字典
6 len(字典) 计算字典内的元素数量
(1)新增元素

语法:字典[Key] =Value,结果:字典被修改,新增了元素

my_dict1 = {"王力鸿": 88, "林俊节": 77}
# 新增,张学油的考试成绩
my_dict1['张学油'] = 66
print(my_dict1)

# 结果:{'王力鸿': 88, '林俊节': 77, '张学油': 66}
(2)更新元素

语法:字典[Key]=Value,结果:字典被修改,元素被更新

注意: 字典Key不可以重复,所以对已存在的Key执行上述操作,就是更新Value值

my_dict1 = {"王力鸿": 88, "林俊节": 77}
my_dict1['王力鸿'] = 66
print(my_dict1)

# 结果:{'王力鸿': 66, '林俊节': 77}
(3)删除元素

语法: 字典.pop(Key),结果:获得指定Key的Value,同时字典被修改,指定Key的数据被删除

my_dict1 = {"王力鸿": 88, "林俊节": 77}
value = my_dict1.pop("王力鸿")
print(value)   # 结果:88
print(my_dict1)  # 结果:{'林俊节': 77}
(4)清空字典

语法:字典.clear(),结果:字典被修改,元素被清空

my_dict1 = {"王力鸿": 88, "林俊节": 77}
my_dict1.clear()
print(my_dict1)

# 结果:{}
(5)获取字典的全部Key

语法:字典.keys(),可用于for循环遍历字典

# 获取全部的key
my_dict = {"周杰轮": 99, "王力鸿": 88, "林俊节": 77}
keys = my_dict.keys()
print(f"字典的全部keys是:{keys}")  # 结果:字典的全部keys是:dict_keys(['周杰轮', '王力鸿', '林俊节'])

# 遍历字典
# 方式一:通过获取到全部的key来完成遍历
for key in keys:
    print(f"字典的key是:{key}")
    print(f"字典的value是: {my_dict[key]}")

# 方式二:直接对字典进行for循环,每一次循环都是直接得到key
for key in my_dict:
    print(f"字典的key是:{key}")
    print(f"字典的value是: {my_dict[key]}")

5.字典的特点

经过上述对字典的学习,可以总结出字典有如下特点:

(1)可以容纳多个数据

(2)可以容纳不同类型的数据

(3)每一份数据是KeyValue键值对

(4)可以通过Key获取到Value,Key不可重复 (重复会覆盖)

(5)不支持下标索引

(6)可以修改(增加或删除更新元素等)

(7)支持for循环,不支持while循环


本次内容就到此啦,欢迎评论区或者私信交流,觉得笔者写的还可以,或者自己有些许收获的,麻烦铁汁们动动小手,给俺来个一键三连,万分感谢 !  

【Python】一文带你掌握数据容器之集合,字典,Python,python,开发语言文章来源地址https://www.toymoban.com/news/detail-752536.html

到了这里,关于【Python】一文带你掌握数据容器之集合,字典的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 更深层次理解Python的 列表、元组、字典、集合(工作面试学习必需掌握的知识点)

    目录 序列介绍 列表  列表的创建 range()创建整数列表   推导式生成列表

    2024年02月22日
    浏览(32)
  • 【Python】基础数据结构:列表——元组——字典——集合

    Python提供了多种内置的数据结构,包括列表( List )、元组( Tuple )和字典( Dictionary )。这些数据结构在Python编程中都有着广泛的应用,但它们各有特点和适用场景。 列表是一种有序的集合,可以随时添加和删除其中的元素。列表是可变的,也就是说,你可以修改列表的

    2024年02月10日
    浏览(37)
  • Python-基础篇-数据结构-列表、元组、字典、集合

    列表、元组 字典、集合 💬正如在现实世界中一样,直到我们拥有足够多的东西,才迫切需要一个储存东西的容器,这也是我坚持把数据结构放在最后面的原因一一直到你掌握足够多的技能,可以创造更多的数据,你才会重视数据结构的作用。这些储存大量数据的容器,在

    2024年01月21日
    浏览(81)
  • Python中列表,元组,集合,字典哪些数据结构支持双向索引?

    在Python中,我们常用的内置数据结构有列表、元组、集合和字典。其中,只有列表和元组支持双向索引,可以通过正向索引和负向索引访问元素。而字典和集合不支持索引。 在Python中,内置的数据结构主要包括: 列表(list):有序,可变的数据集合,可以通过索引访问元素。 元组(tuple)

    2024年02月08日
    浏览(47)
  • 【100天精通python】Day9:数据结构_字典、集合

    目录  目录 1 字典      1.1 字典的基本操作示例 1.2 字典推导式 2 集合 

    2024年02月15日
    浏览(33)
  • Python数据容器——集合的相关操作

    作者: Insist-- 个人主页: insist--个人主页 本文专栏:Python专栏 专栏介绍: 本专栏为 免费 专栏,并且会持续更新python基础知识,欢迎各位订阅关注。 目录 一、理解集合 1. 集合是什么? 2. 为什么需要集合? 3. 集合的特点 二、相关操作 1. 定义集合 2. 添加新元素 3. 删除元素

    2024年02月08日
    浏览(26)
  • 100天精通Python丨基础知识篇 —— 05、7大基础数据类型详解(变量、列表、集合、字典、元组)

    《100天精通Python专栏 - 快速入门到黑科技》 是由 CSDN 内容合伙人丨全站排名 Top 4 的硬核博主 不吃西红柿 倾力打造,专栏分为基础知识篇和黑科技应用篇。 基础知识篇 以理论知识为主,旨在帮助没有语言基础的小伙伴,学习我整理成体系的精华知识,快速入门构建起知识框

    2023年04月18日
    浏览(46)
  • Python 集合(列表 ,元组,集合, 字典)

    Python 编程语言中有四种集合数据类型: 列表(List)是一种有序和可更改的集合。允许重复的成员。 元组(Tuple)是一种有序且不可更改的集合。允许重复的成员。 集合(Set)是一个无序和无索引的集合。没有重复的成员。 字典(Dictionary)是一个无序,可变和有索引的集合

    2024年02月02日
    浏览(49)
  • python常见的数据类型与数据结构(一)数字类型 字符串类型 布尔类型 列表 集合 字典 的定义与常规操作方法

    数字类型有int(整数),float(浮点数)和complex(复数型),其中int与float被大家所常用并且可以使用int()和float()函数相互转换。如果字符串只包含数字和小数点也可以被这两种函数强制转换。复数型,则少被人们使用,大都是用在数学公式和物理公式的计算上。 字符串类型较为简单

    2024年02月21日
    浏览(37)
  • Python -- 列表、元组、字典、集合

    目录 一、列表 1.列表介绍 1)列表的介绍 2)列表创建方式 2.列表的增删改查 1)获取列表中某个元素(查) 2)修改元素的值(改) 3)删除元素(删) 4)添加元素(增) 3.其它常用方法 1)列表常用方法 2)常用Python内置方法 二、元组 1.元组介绍 1)元组的介绍 2)元组创建

    2024年02月03日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包