python学习——核心语法三

复制代码
#set集合
#特点:不可重复,无序,可修改
#由于集合是无序的,因此是不支持索引访问的

s1 = {"C","D","X","T","O","C"}
复制代码
#定义空集合 不能用{},{}表示的是空字典
s2 = set()
s3 = {}
print(s1)
print(type(s2))
print(type(s3))
复制代码
s4 = {1,2,3,4,5}
s5 = {2,3,4,7,9}
s4.add(6)
print(s4)
s4.remove(4)
print(s4.pop())
复制代码
s4 = {1,2,3,4,5}
#set pop()是按某种顺序进行的,而不是随机的。并且每次执行的结果都一样。
print(s4.union(s5))
print(s4.difference(s5))
print(s4.intersection(s5))  #也可以用 & 符号

french_set = {"张三","许木","王鹏","邓江","胡图","李明","周刚"}

art_set = {"刘梅","王鹏","谢娜","李明","刘强"}
复制代码
#同时选修了法语和艺术的学生名单
fa_art_set = french_set.intersection(art_set)
print(fa_art_set)
print(french_set & art_set)

#选修了法语,没有选修艺术的学生
fr_not_ar = french_set.difference(art_set)   # 差集,也可以用 “-”
fr_art_not_ar2 = french_set - art_set
print(fr_not_ar)
print(fr_art_not_ar2)
复制代码
french_set = {"张三","许木","王鹏","邓江","胡图","李明","周刚"}

art_set = {"刘梅","王鹏","谢娜","李明","刘强"}

math_set = {"张三","乔九","许木","大大","葛优","王鹏"}
#方式三---->集合推导式的方式
fr_art_not_ar3 = {s for s  in french_set if s not in art_set}
print(fr_art_not_ar3)

#3.统计每个学生选修的课程数量
all_set = french_set.union(art_set)  # 并集,也可以用 “|”
all_set2 = french_set | art_set
print(all_set)  #获取到所有学生,去重
print(all_set2)

all_list = [*french_set, *art_set, *math_set]  #利用list列表可以重复的特性,“*”解包
for student in all_set:
    count = all_list.count(student)
    print(f"{student}\t 选修了 {count} 门课程")


#总结:
# set 集合运算符
#交集  intersection &
#差集  difference   -
#并集  union        |
#解包  *
#集合推导式写法 set = {i表达式 for i in 集合}
#集合推导式写法 set = {i表达式 for i in 集合 if 条件}
相关推荐
传奇开心果编程2 分钟前
【SwiftUI娓娓道来】第3课:让界面活起来——交互与动画指南
学习·macos·ui·ios·swiftui·swift
Circ.5 分钟前
Python 调试 Litellm 本地大模型接口:模型列表与对话接口实操踩坑记录
开发语言·python
xian_wwq19 分钟前
【学习笔记】等保合规安全基线核查实战
笔记·学习
风早爽太1 小时前
用 ‌Render‌ 快速部署网站和常见问题解决
python·fastapi
传奇开心果编程1 小时前
【Jetpack Compose进阶学与练】第14课:系列收尾复习总结;Compose项目常见坑点汇总;学习路线与后续学习方向
android·学习·ui·kotlin·android jetpack
yangmu32031 小时前
发动机是怎么把油变成动力的:四冲程内燃机原理拆解
学习
m4Rk_1 小时前
【论文阅读】Agent 记忆机制(81):EMR——用情景记忆避免 Agent 在多步推理中反复绕圈
论文阅读·人工智能·学习·开源·github
海海不掉头发1 小时前
阶段五_实验34-38_学习总结
深度学习·神经网络·学习·机器学习
M78佐菲2 小时前
ARM学习笔记(11)
linux·arm开发·笔记·嵌入式硬件·学习
现任明教教主~2 小时前
Thinkphp站群蜘蛛池SaaS系统YanyvSEO含多用户/积分/六大引擎计费/易支付对接
java·开发语言·spring