Python中除了常见的Numbers(数字)、String(字符串)、List(列表)、Tuple(元组)、Dictionary(字典)标准数据类型外,还存在一种set(集合)类型,可用于存储值。其有两个重要特点:1. 无序,2. 不重复。
1
无序
此处的无序指的是元素的定义顺序与输出顺序不一致,如下图所示:
Ps1:若想将无序的集合转化成有序的,可使用Python内置函数sorted(),如下图:
Ps2:若想按照降序输出集合a1中的值,如下图:
2
不重复
此处的不重复指的是集合中的同一个元素只有一次输出,如下图所示:
本篇文章将围绕以下几点进行讨论:
1. 集合的创建
2. 从集合中添加值或者删除值
3. 集合运算方法
4. set(可变集合)与frozenset(不可变集合)
1 集合的创建 集合的创建有两种方法:使用 花括号{ }
创建、使用 Python的内建函数set()
来创建。
两种方法的创建如下图所示:
注意:
创建一个空集合必须用 set() 而不能使用{ },因为 { } 表示创建一个空字典。如下图:
2
从集合中添加值或者删除值
Python中提供了可用于操作集合的内置函数。
1. Add()函数
该方法表示往集合中添加一个新的元素内容。
如下图:
2. Update()函数
将参数集合添加至调用集合中。
如下图:
3. Remove()函数
从集合中移除指定元素。
如下图:
4. Discard()函数
从集合中移除指定的元素。
如下图:
注意:
discard()函数与remove()函数的作用基本相同,均是从集合中移除指定的元素,区别是当集合中不包含指定元素时,执行discard()函数,不会引发程序错误。
5. Pop()函数
从集合中删除并返回任意的元素。
如下图:
注意:
当集合中不包含元素(空集合),执行pop()函数,则会引发程序错误。
6. Clear()函数
移除集合中所有的元素内容。
如下图:
3
集合运算方法
1. 并集(Union)
两个集合中的所有元素合并在一起组成的集合,叫做集合A与集合B的并集。
如图:
2. 交集(Intersection)
两个集合中,属于A并且属于B的元素的集合称为A与B的交集。
如下图:
3. 差集(Difference)
两个集合A和B中, 属于A且不属于B的元素的集合称为A与B的差集。
如下图所示:
4. 对称差(Symmetric Difference)
两个集合A,B中,不重复的元素的集合称为A与B的对称差集。
如下图:
4
set(可变集合)与frozenset(不可变集合)
set是无序排序且不重复,是可变的,有add(),remove()等方法;
而frozenset是冻结的集合,它是不可变的,一旦创建便不能更改,没有add(),remove()方法。
作者:西安优盛机器学习算法工程师/刘国倩