淘宝联盟建微网站,软件定制报价单,郑州软件开发培训,弧光之源网站建设目录#xff1a; 一、集合
思考#xff1a;我们目前接触到了列表、元组、字符串三个数据容器了。基本满足大多数的使用场景为何又需要学习新的集合类型呢?
通过特性来分析: #xff08;1#xff09;列表可修改、支持重复元素且有序 #xff08;2#xff09;元组、字符…目录 一、集合
思考我们目前接触到了列表、元组、字符串三个数据容器了。基本满足大多数的使用场景为何又需要学习新的集合类型呢?
通过特性来分析: 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个集合内容不变8len集合得到一个整数记录了集合的元素数量
(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[王二麻子]) # 结果773.字典的嵌套
字典的Key和Value可以是任意数据类型(Key不可为字典
那么就表明字典是可以嵌套的
需求如下: 记录学生各科的考试信息 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循环遍历字典6len(字典)计算字典内的元素数量
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获取到ValueKey不可重复 (重复会覆盖)
5不支持下标索引
6可以修改(增加或删除更新元素等)
7支持for循环不支持while循环 本次内容就到此啦欢迎评论区或者私信交流觉得笔者写的还可以或者自己有些许收获的麻烦铁汁们动动小手给俺来个一键三连万分感谢 !