当前位置 : 主页 > 编程语言 > python >

Python简明教程--Set

来源:互联网 收集:自由互联 发布时间:2022-06-15
1. 引言 在Python中,集合Set是常用的数据类型之一,本文就集合相关常见的函数和操作进行汇总,方便大家查漏补缺。 闲话少说,我们直接开始吧! 2. 相关概念 2.1 定义 集合​​set​​

1. 引言

在Python中,集合Set是常用的数据类型之一,本文就集合相关常见的函数和操作进行汇总,方便大家查漏补缺。

闲话少说,我们直接开始吧!


2. 相关概念

2.1 定义

集合​​set​​是具有唯一元素的无序集合,它和列表很像,但它只能包含唯一的元素,同时需要注意的是集合是无序的,也就是说集合中没有第一个、第二个元素之说,通常我们只是说集合中是否含有这些元素。

2.2 用途

我们通常需要检测某个元素是否属于某个集合,举例:假设我们有一个列表​​list1 = [3,4,5,6]​​,如果我们需要检查该列表中是否包含数字​​6​​,我们通常这么实现:

print(6 in [3,4,5,6])

如果我们对列表​​list​​进行​​in​​操作,此时Python将一个元素一个元素来遍历整个列表,直到它在列表中遇到数字​​6​​时,返回​​True​​。如果我们的列表含有​​n​​个元素,那么这个操作最坏的情况下将查找​​n​​次。

如果我们换成集合的实现呢?如下所示:

print(6 in {3,4,5,6})

我们在集合​​set​​中查找一个元素是非常快的,如果元素数目很多的情况下。假设我们的集合中有​​n​​个元素,对集合执行​​in​​操作仅需查找1次,相比列表查找速度极快。

3. 创建集合

我们可以使用​​set​​的构造函数创建空的集合,如下所示:

s1 = set()

当然我们也可以创建包含初始值的集合,如下所示:

s1 = {4, 5, 6}

我们通常使用花括号​​{​​和​​}​​来创建一个包含多个元素的集合。集合和字典之间的区别在于,字典要求我们键入由冒号​​:​​分隔的键值对,而集合则不需要。

注意:我们只能将不可变的元素放入集合中。如果我们试图放置可以改变的元素,例如列表或字典,我们程序将会报错。

4. 集合中添加新的元素

我们一般使用​​add​​方法来给集合中添加新的元素,如下:

s1 = {3,4,5}
s1.add(6)
# s1 will be {3,4,5,6}

需要注意的是,如果我们尝试向集合中添加已经存在的元素,则不会发生任何事情,因为集合只能包含唯一的元素。样例如下:

s1 = {3,4,5}
s1.add(3)
# s1 will still be {3,4,5}

5. 判断集合中包含某元素

一般使用​​in​​操作符来判断集合中是否包含某个元素,样例代码如下:

if 6 in {3,4,5,6}:
print("6 is inside our set")
else:
print("not inside")

6. 计算集合的长度

集合的长度通常指的是集合中所包含元素的个数,我们可以使用内置的​​len​​函数来进行计算,样例代码如下:

s1 = {3,4,5,6}
x = len(s1)
# x will be 4, as there are 4 elements inside s1

7. 从集合中删除元素

如果我们需要从集合中删除某个元素,我们可以简单地使用​​.remove​​方法进行操作,如下所示:

s1 = {3,4,5,6}
s1.remove(6)
# s1 will now be {3,4,5}

此时,如果我们删除的元素在集合中并不存在,将会触发错误信息,如下:

s1 = {3,4,5,6}
s1.remove(7) # error

有的同学可能会说,并不希望删除的时候会触发错误,那么我们可以简单的使用​​discard​​函数,该函数和​​remove​​函数功能一样,同时在删除不存在的元素时不会触发错误。如下所示:

s1 = {3,4,5,6}
s1.discard(6) # removes 6
s1.discard(7) # removes nothing, but no error raised

8. 计算两个集合的并集

假设我们有如下两个集合:

s1 = {1,2,3,4}
s2 = {3,4,5,6}

我们希望计算两个集合的并集,也就是求上述两个集合中所有元素构成的集合,此时我们可以使用​​union​​函数,样例如下:

s3 = s1.union(s2)
# s3 will be {1,2,3,4,5,6}

图示如下:

Python简明教程--Set_python

9. 计算两个集合的交集

假设我们有如下两个集合:

s1 = {1,2,3,4}
s2 = {3,4,5,6}

我们希望计算两个集合的交集,也就是求上述两个集合中的公共元素所构成的集合,此时我们可以使用​​intersection ​​函数,样例如下:

s3 = s1.intersection(s2)
# s3 will be {3,4}

图示如下:

Python简明教程--Set_python_02

10. 计算两个集合的差集

假设我们有如下两个集合:

s1 = {1,2,3,4}
s2 = {3,4,5,6}

我们希望计算两个集合的差集,也就是求在集合​​s1​​同时不在集合​​s2​​中的元素所构成的集合,此时我们可以使用​​-​​操作符来获取上述两个集合的差集,样例如下:

s3 = s1 - s2
# s3 will be {1, 2}

相应地,如果我们希望找去在集合​​s2​​中而不在集合​​s1​​中的元素,我们可以这样做:

s3 = s2 - s1
# s3 will be {5, 6}

图示如下:

Python简明教程--Set_python_03

11. 总结

本文重点介绍了Python中集合​​set​​常见的操作和相应的应用场景,并给出了相关代码示例。

您学废了嘛?

Python简明教程--Set_python_04

网友评论