当前位置: 首页 > web >正文

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日


http://www.xdnf.cn/news/12601.html

相关文章:

  • 《前端面试题:JavaScript 变量》
  • 关于DSP数据类型长度的思考
  • openlayers实现可拖拽的节点(类似知识图谱)
  • 地震勘探——地震波速度、地震子波、合成地震记录、影响地震振幅的因素
  • 巨控GRM550系列,西门子 S7-1200 PLC 远程上下载与调试技术方案
  • SM560-S (1SAP280000R0001) AC500 CPU Firmware SM560-S-FD-4
  • python学习打卡day45
  • 深入Kubernetes源码阅读指南核心概念-代码目录-pkg/kubeapiserver
  • 信息检索与利用
  • AcWing 3417:砝码称重——位集合
  • MCV的安装和运行
  • 第4天:RNN应用(心脏病预测)
  • 前端异步编程全场景解读
  • Java多态中的类型转换详解
  • Cesium添加图片标记点、glb模型
  • 双面沉金电路板工艺全解析:关键技术要点与行业应用实践
  • 飞凌嵌入式AM62x核心板驱动微电网智能化创新
  • ABAT100蓄电池在线监测系统:准确预警,保障电池安全运行
  • 使用python把json数据追加进文件,然后每次读取时,读取第一行并删除
  • [蓝桥杯]兰顿蚂蚁
  • 2025年全国青少年信息素养大赛 scratch图形化编程挑战赛 小高组初赛 真题详细解析
  • vue3学习(toRefs和toRef,computed计算属性 ,v-model指令,箭头函数)
  • 2025/6/4知识点总结—HALCON像素坐标转物理坐标
  • chatlog:一个基于MCP实现聊天记录总结和查询的开源工具
  • WebFuture:Syncthing配置以www-data用户运行
  • LINUX 66 FTP 2 ;FTP被动模式;FTP客户服务系统
  • Python训练营---Day46
  • R²ec: 构建具有推理能力的大型推荐模型,显著提示推荐系统性能!!
  • python中的逻辑运算
  • 什么是强化学习:设置奖励函数最为loss, 监督学习:标签准确率作为loss