集合(Set) - Python教程

闪电发卡4个月前Python202

大家好,今天我们来聊聊Python中的一个重要概念——集合(Set)。在Python编程中,集合是一个非常有用的数据结构,无论是在数据处理、算法设计还是日常的小工具编写中,集合都有很多实际应用。

首先,我们得了解一下什么是集合。集合是一个无序的、唯一元素的组合。说白了,就是把一堆不重复的东西放在一起,顺序不重要。比如,你的书架上有几本书,不管书摆在第几层、哪个位置,只要这些书不重样,这些书就可看作一个集合。

在Python中,集合的数据结构非常方便使用,下面我们一起来看看如何创建和操作集合。

创建集合

创建集合有多种方式,可以直接使用大括号 {} 或者用 set() 函数。举个例子:

# 使用大括号创建集合
my_set = {1, 2, 3, 4, 5}
print(my_set)  # 输出: {1, 2, 3, 4, 5}

# 使用 set 函数创建集合
another_set = set([1, 2, 3, 4, 5])
print(another_set)  # 输出: {1, 2, 3, 4, 5}

需要注意的是,使用 {} 创建空集合是不行的,这样创建的是一个空字典。如果想创建一个空集合,需要使用 set() 函数。

# 这是字典,不是集合
empty_dict = {}
print(type(empty_dict))  # 输出: <class 'dict'>

# 这样才是空集合
empty_set = set()
print(type(empty_set))  # 输出: <class 'set'>

集合的基本操作

集合提供了许多有用的操作,比如添加元素、删除元素和运算操作等。

添加元素

可以使用 add() 方法来添加元素:

my_set = {1, 2, 3}
my_set.add(4)
print(my_set)  # 输出: {1, 2, 3, 4}

删除元素

可以使用 remove() 方法删除某个元素。如果元素不存在,会抛出一个 KeyError 异常。为了避免这种情况,可以使用 discard() 方法,它在元素不存在时不会抛出异常。

my_set.remove(3)  
print(my_set)  # 输出: {1, 2, 4}

# 如果元素不存在,会抛出异常
# my_set.remove(5)  # KeyError: 5

# 使用 discard 方法,不会抛出异常
my_set.discard(5)
print(my_set)  # 输出: {1, 2, 4} 没有变化

清空集合

如果想清空集合中的所有元素,可以使用 clear() 方法:

my_set.clear()
print(my_set)  # 输出: set()

集合运算

集合支持很多常见的集合运算,比如并集、交集、差集和对称差分。

并集

并集是把两个集合中的所有元素放在一起,但不包含重复元素。可以使用 union() 方法或者 | 运算符。

set1 = {1, 2, 3}
set2 = {3, 4, 5}
union_set = set1.union(set2)
print(union_set)  # 输出: {1, 2, 3, 4, 5}

# 或者使用 |
union_set = set1 | set2
print(union_set)  # 输出: {1, 2, 3, 4, 5}

交集

交集是两个集合中共有的元素。可以使用 intersection() 方法或者 & 运算符。

intersection_set = set1.intersection(set2)
print(intersection_set)  # 输出: {3}

# 或者使用 &
intersection_set = set1 & set2
print(intersection_set)  # 输出: {3}

差集

差集是从一个集合中去除另一个集合的元素。可以使用 difference() 方法或者 - 运算符。

difference_set = set1.difference(set2)
print(difference_set)  # 输出: {1, 2}

# 或者使用 -
difference_set = set1 - set2
print(difference_set)  # 输出: {1, 2}

对称差分

对称差分是两个集合中不共有的元素。可以使用 symmetric_difference() 方法或者 ^ 运算符。

sym_diff_set = set1.symmetric_difference(set2)
print(sym_diff_set)  # 输出: {1, 2, 4, 5}

# 或者使用 ^
sym_diff_set = set1 ^ set2
print(sym_diff_set)  # 输出: {1, 2, 4, 5}

小结

Python 中的集合(Set)是一个非常有用的数据结构,适用于处理一组不重复的、无序的元素。我们可以通过大括号 {} 或者 set() 函数来创建集合,也可以利用各种方法来添加、删除和操作集合中的元素。集合还支持并集、交集、差集和对称差分等基本运算,非常适合用于处理复杂的数据集。

希望通过这篇文章,你能够更好地理解和使用集合这个强大的数据结构,为你的Python编程带来更多便利。如果你有任何问题或建议,欢迎在下方留言讨论。让我们一起继续学习和成长!

闪电发卡ChatGPT产品推荐:
ChatGPT独享账号
ChatGPT Plus 4.0独享共享账号购买代充
ChatGPT APIKey 3.5和4.0购买充值(直连+转发)
ChatGPT Plus国内镜像(逆向版)
ChatGPT国内版(AIChat)
客服微信:1、chatgptpf 2、chatgptgm 3、businesstalent

相关文章

for循环 - Python教程

大家好,我是你们的博主小明。今天咱们来聊聊Python中的一种基本构建——for循环。不管你是编程小白还是老手,这篇文章都会让你对for循环有更全面的掌握。说到编程,很多时候我们会遇到重复性很高的任务...

生成器 - Python教程

大家好,欢迎来到我们的博客!今天我要和大家聊聊一个非常有趣且实用的主题——生成器。在编程的世界里,尤其是使用Python编程语言,生成器是一个非常重要的概念。它不仅能让代码更简洁,还能极大地提高程序的...

安装Python - Python教程

哈喽,各位Python爱好者们,欢迎来到我的博客!今天我们要聊的是Python的安装过程,这个过程对于每一位编程新手来说,无疑是非常重要的一步。不管你是想写个小程序,做数据分析,还是搞人工智能,Pyt...

配置Python开发环境(如Anaconda,PyCharm,VS Code) - Python教程

大家好,欢迎来到我的博客。今天,我们来聊聊如何配置Python开发环境。Python作为一种流行的编程语言,应用范围非常广泛,从数据分析、机器学习到Web开发,无所不包。而配置一个高效的开发环境,则是...

逻辑运算符 - Python教程

大家好!欢迎来到今天的博客!今天我们来聊聊一个在编程中非常重要的概念——逻辑运算符。通过这篇文章,你将能够更好地理解Python中的逻辑运算符,并掌握它们的使用方法。那我们就正式开始吧! 在Pytho...

继承 - Python教程

大家好,今天我们来聊聊Python中的一个重要概念——继承。继承是面向对象编程(OOP)中的一个核心机制,它允许一个类继承另一个类的属性和方法,从而实现代码的重用和扩展。那么,继承到底是怎么回事呢?别...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。