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 条件}
相关推荐
旖旎夜光11 分钟前
【C++ 基础入门】C++多态(下):单/多继承虚表、多态补充与 21 道高频题
开发语言·c++·笔记·学习
天天被压力21 分钟前
【A股分钟级高频数据完全手册 #11】券商实时行情数据接口:实时交易(券商源)接入与字段
java·人工智能·python
总裁余(余登武)25 分钟前
【python项目】:1操作EXCEl自动化开发
python·自动化·excel
芝梵家电数据笔记28 分钟前
用字段表核对暖菜板长期使用条件:结构、暖区、质保边界
python·家电·数据校验·dataclass·选购
天天被压力34 分钟前
【A股分钟级高频数据完全手册 #12】股票五档盘口数据接口:买卖五档实时盘口解析
java·人工智能·python
叼烟扛炮5 小时前
[LangChain] 学习笔记(07):大模型长出手脚——工具(Tools)定义与调用闭环
笔记·学习·langchain
Wang's Blog10 小时前
Java 项目实战: 交友项目 - FastDFS:入门案例
java·开发语言·交友
叼烟扛炮10 小时前
[LangChain] 学习笔记(06):突破大模型限制——结构化输出(Structured Output)
windows·笔记·学习·langchain
apcipot_rain10 小时前
C++转Java日记(03)
java·开发语言·c++
皮皮林55110 小时前
Java实现微信扫码登录
java