8天Python从入门到精通【itheima】-73~74(数据容器“集合”+案例练习)
目录
73节-集合的基础定义和操作
1.学习目标
2.为什么要用集合
3.集合的定义
4.关于集合的常用操作
【1】添加新元素:add方法
【2】移除元素:remove方法
【3】随机取出元素:pop方法
【4】清空集合:clear方法
【5】取出两个集合的差集:difference方法(取出集合1中集合2没有的元素)
【6】消除差集:difference_update方法
【6】合并两个集合的方法:union方法
【7】统计集合的元素数量:len方法
【8】集合的遍历
【9】集合常用操作的总结
5.集合的特点
6.小节总结
74节-关于集合的案例练习:信息去重
1.案例需求
2.代码实战
好了,又一篇博客和代码写完了,励志一下吧,下一小节等等继续:
73节-集合的基础定义和操作
1.学习目标
1.集合的定义格式
2.集合的特点
3.集合的常见操作
2.为什么要用集合
集合的最大特点: 1.无需 2.不支持元素的重复【自带去重的功能】
3.集合的定义
# 74节# 演示数据容器——集合的使用# 定义集合
my_set={"传智教育","黑马程序员","itheima","传智教育","黑马程序员","itheima","传智教育","黑马程序员","itheima"}
my_set_empty=set() #空集合
print(f"my_set的内容是:{my_set};类型是:{type(my_set)}")
print(f"my_set_empty的内容是:{my_set_empty};类型是:{type(my_set_empty)}")
# my_set的内容是:{'传智教育', 'itheima', '黑马程序员'};类型是:<class 'set'> [集合有自动去重的功能;并且是无序的]
# my_set_empty的内容是:set();类型是:<class 'set'>
4.关于集合的常用操作
由此得到一点:因为集合是无序的,所以不支持下表索引的访问,所以集合不是序列。
【1】添加新元素:add方法
# 添加新元素
my_set.add("Python")
my_set.add("传智教育") #集合有去重的功能,重复的元素被去重
print(f"my_set添加后的内容是:{my_set}")
【2】移除元素:remove方法
# 移除元素
my_set.remove("黑马程序员")
print(f"my_set移除黑马程序员之后,他的结果是:{my_set}") #在 Python 中,集合(set)移除元素的操作,默认是直接在原集合上修改,不会返回新集合
【3】随机取出元素:pop方法
集合的pop方法,有返回结果
# 随机取出一个元素
my_set={"传智教育","黑马程序员","itheima"}
element=my_set.pop()
print(f"my_set的内容变成了:{my_set}")#集合的pop方法,有返回结果
print(f"取出的元素是:{element}")
# my_set的内容变成了:{'黑马程序员', '传智教育'}
# 取出的元素是:itheima
【4】清空集合:clear方法
# 清空集合
my_set={"传智教育","黑马程序员","itheima"}
my_set.clear()
print(f"集合被清空后的结果是:{my_set}")
# 集合被清空后的结果是:set()
【5】取出两个集合的差集:difference方法(取出集合1中集合2没有的元素)
# 取两个集合的差集
set1={1,2,3}
set2={1,5,6}
set3=set1.difference(set2)
set4=set2.difference(set1)
print(f"set1和set2的差集是:{set3}") #2,3 set1和set2的差集是:{2, 3}
print(f"set2和set1的差集是:{set4}") #5,6 set2和set1的差集是:{5, 6}
print(f"取差集后,查看原有的set1集合是否发生改变:{set1}") #取差集后,查看原有的set1集合是否发生改变:{1, 2, 3}
print(f"取差集后,查看原有的set2集合是否发生改变:{set2}") #取差集后,查看原有的set2集合是否发生改变:{1, 5, 6}
# 由此可见,取出差集后,原有的集合不会发生变化
【6】消除差集:difference_update方法
在在集合1内,消除与集合2内容相同的元素。同时,集合1被修改,集合2不发生变化。
# 消除两个集合的差集
set1={1,2,3}
set2={1,5,6}
set1.difference_update(set2)
print(f"set1的结果变成:{set1}") #set1的结果变成:{2, 3}
print(f"set2的结果变成:{set2}") #set2的结果变成:{1, 5, 6}
【6】合并两个集合的方法:union方法
# 两个集合合并为一个
set1={1,2,3}
set2={1,5,6}
set3=set1.union(set2)
print(f"两个集合合并之后的结果是:{set3}") #两个集合合并之后的结果是:{1, 2, 3, 5, 6}
print(f"set1的结果变成:{set1}") #set1的结果变成:{1, 2, 3}
print(f"set2的结果变成:{set2}") #set2的结果变成:{1, 5, 6}
# 会返回一个新的集合,原有集合不发生变化
【7】统计集合的元素数量:len方法
因为集合自动去重,所以重复的集合元素只算一个
# 统计集合元素数量
my_set={"传智教育","黑马程序员","itheima","传智教育","黑马程序员","itheima"}
len1=len(my_set)
print(f"集合my_set内元素的数量有:{len1}个。")#因为集合自动去重,所以重复的集合元素只算一个
【8】集合的遍历
集合的遍历 【不能用 while循环,因为集合是无序的,所以不支持下标索引】只能用for循环
# 集合的遍历 【不能用 while循环,因为集合是无序的,所以不支持下标索引】
my_set={1,2,3,4,5}
for element in my_set:print(f"集合my_set中的元素有:{element}")
# 集合my_set中的元素有:1
# 集合my_set中的元素有:2
# 集合my_set中的元素有:3
# 集合my_set中的元素有:4
# 集合my_set中的元素有:5
【9】集合常用操作的总结
5.集合的特点
6.小节总结
74节-关于集合的案例练习:信息去重
1.案例需求
2.代码实战
# 75节-关于集合的案例练习:信息去重# 定义列表
my_list=["黑马程序员","传智播客","黑马程序员","传智播客","itheima","itcast","itheima","itcast","best"]# 1.定义一个空集合
my_set=set()# 2.通过for循环进行遍历列表中的元素,然后把列表中的元素添加到空的集合中
for i in my_list:my_set.add(i)
print(f"有列表:{my_list}")
print(f"存入集合后的结果:{my_set}")
# 有列表:['黑马程序员', '传智播客', '黑马程序员', '传智播客', 'itheima', 'itcast', 'itheima', 'itcast', 'best']
# 存入集合后的结果:{'itheima', 'itcast', '传智播客', 'best', '黑马程序员'}
好了,又一篇博客和代码写完了,励志一下吧,下一小节等等继续:
致帕特里克君:
展信佳。
获悉你在学习大数据专业时,每日坚持钻研代码、整理博客,甚至不惜让手指承受辛劳,这份毅力与热忱令我深感触动。你的笔记中,对Python集合的去重特性、差集运算等细节的严谨推敲,正是技术人最珍贵的品质——在基础中沉淀,在重复中精进。
你提到"像拳击手晨跑"的比喻,恰如其分。我曾执掌现代建设时,亦每日清晨巡视工地,核对图纸与施工细节。外人看来枯燥的砂石与钢筋,却是摩天大楼屹立不倒的根基。技术之路,从无捷径。每一行代码的锤炼,都在为未来解决更复杂的问题锻造利刃。
你偶尔的自我怀疑,恰是突破的前奏。当年我主导清溪川复原工程时,质疑之声不绝于耳:在繁华都市中心挖掘河道是否痴人说梦?但正是对基础数据(水文、地质、交通流量)的数万次验算,让蓝图终成现实。大数据专业的你,当明白真理藏于毫厘:今日对"集合去重"的透彻理解,未来或可清洗千万级数据中的噪点,洞见他人未察之规律。
手腕的酸痛是身体的警讯,却也是意志的勋章。望你效仿韩国"任劳任怨"(일편단심)的精神,但勿忘适时休整——技术之路如马拉松,调息方能致远。
请坚信:你笔下每一段代码,皆是未来数字世界的基石;你今日之躬耕,必在智能时代收获丰硕之果。
以《论语》与你共勉:"工欲善其事,必先利其器。" 你此刻磨砺的"集合"之器,终将成为劈开数据瀚海的舟楫。
谨祝学业精进,身体康健。
李明博 谨启
2025年6月6日