开篇
歪小王: 大佬们!欢迎回到《趣玩 Python 》!本期节目我们将继续邀请数据结构界的一位嘉宾——Set!掌声有请!
(Set 以一位潇洒自信的角色登场,手里挥舞着一把“大扫帚”,象征着他强大的去重功能)
Set: 大家好,我是 Set,中文叫“集合”。我最擅长的事情就是去重!没错,任何重复的东西到我这儿,通通给你清理得干干净净!
歪小王: 哇,Set 老师,您这登场可真霸气!能跟大家介绍一下您自己和您在 Python 中的神奇能力吗?
基本概念
Set: 哈哈,当然可以!简单来说,集合是一种无序、不重复的元素集合。如果你厌烦了列表里的那些重复项,或者不在乎元素的顺序,那我就是你最好的选择!
无序:在我这里,元素是没有顺序的!所以你想通过索引来访问某个元素?别想了,我可不按常理出牌!
不重复:重复的元素在我这里会被自动去掉,绝不留情。
歪小王: 不按常理出牌,这听起来可真有个性!那具体应该怎么创建您呢?
集合的定义:
Set: 使用大括号 {} 创建集合就像创建一个派对嘉宾名单一样简单:
my_set = {1, 2, 3, 4}当然,如果你想创建一个空集合,那可得用 set(),否则用 {} 创建的将是个空字典!
empty_set = set() # 这是空集合
empty_dict = {} # 这是空字典功能展示
歪小王: 既然集合这么神奇,Set 老师,您能展示一下具体的功能吗?
Set: 没问题!集合不光擅长去重,操作起来还非常灵活。
1. 自动去重:
当你往集合里添加重复的元素时,放心,我会帮你自动去掉这些重复项!
my_set = {1, 2, 2, 3, 4, 4}
print(my_set) # 输出: {1, 2, 3, 4}2. 添加元素:
虽然我不允许重复,但你可以随时向我添加新元素。
my_set.add(5)
print(my_set) # 输出: {1, 2, 3, 4, 5}3. 删除元素:
如果某个元素你不想要了,我可以帮你轻松删除。
my_set.remove(3)
print(my_set) # 输出: {1, 2, 4, 5}当然,如果你担心删除的元素不在集合里,可以用 discard(),不会抛异常。
my_set.discard(10) # 不会报错4. 集合操作:
我还有很多专属操作,像是交集、并集和差集,这些都是我的拿手绝活!
并集:把两个集合合并在一起,去除重复项:
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1 | set2) # 输出: {1, 2, 3, 4, 5}交集:找到两个集合的共同元素:
print(set1 & set2) # 输出: {3}差集:找出一个集合中有,而另一个集合没有的元素:
print(set1 - set2) # 输出: {1, 2}内置函数和方法
歪小王: Set 老师,听起来您功能强大,不但去重还能做集合运算,那您有哪些内置函数和方法可以帮助我们呢?
Set: 哈哈,下面就来看看我有哪些常用的“法宝”吧!
1. len(set):
返回集合中元素的个数:
my_set = {1, 2, 3, 4}
print(len(my_set)) # 输出: 42. set.add(value):
向集合中添加元素:
my_set.add(5)
print(my_set) # 输出: {1, 2, 3, 4, 5}3. set.remove(value) 和 set.discard(value):
从集合中删除元素,remove() 如果元素不存在会报错,而 discard() 则不会。
my_set.remove(1) # 如果 1 存在,删除它
my_set.discard(10) # 安全删除,不报错4. set.pop():
随机删除并返回集合中的一个元素。无序集合嘛,谁先出去还真不好说。
my_set = {1, 2, 3}
removed_element = my_set.pop()
print(removed_element) # 输出可能是 1, 2 或 35. set.clear():
清空整个集合,让它变成空集合:
my_set.clear()
print(my_set) # 输出: set()6. set.union(set2) 和 set.intersection(set2):
分别用于并集和交集操作:
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1.union(set2)) # 输出: {1, 2, 3, 4, 5}
print(set1.intersection(set2)) # 输出: {3}应用
歪小王: Set 老师,您在实际编程中有哪些应用呢?可以给我们举几个例子吗?
Set: 当然啦!我的应用场景非常多,比如:
1. 去重:
当你有一堆重复数据,想要把它们变成唯一值的集合时,我是最佳选择:
my_list = [1, 2, 2, 3, 4, 4, 5]
unique_set = set(my_list)
print(unique_set) # 输出: {1, 2, 3, 4, 5}2. 集合操作:
比如你有两个用户组,想找出他们的共同兴趣,或者各自的独特兴趣时,集合操作就派上用场了!
group1 = {"Alice", "Bob", "Charlie"}
group2 = {"Charlie", "David", "Eva"}
# 共同兴趣
common = group1 & group2
print(common) # 输出: {'Charlie'}
# 各自的独特兴趣
unique_to_group1 = group1 - group2
print(unique_to_group1) # 输出: {'Alice', 'Bob'}歪小王: Set 老师,不愧是数据结构界的“去重大师”!不仅能去重,还能做复杂的集合运算,实在是太实用了!
结尾
歪小王: 感谢 Set 老师今天的精彩分享!有了您的帮助,处理重复数据变得轻而易举。希望大家在日常编程中好好利用集合,避免重复数据的困扰!
Set: 没错,大佬们,记住!人生如同集合,有些东西不需要重复,重要的是独特性和互补性。
歪小王:大佬们,本期内容就到这里了。下期我们将介绍一个非常灵活、简洁的帮手--推导式,推导式能帮助我们优化代码量,且适用于字典、列表、元组。让我们敬请期待~

被折叠的 条评论
为什么被折叠?



