python set 不打乱顺序 python set可以排序吗_并集

Python中除了常见的Numbers(数字)、String(字符串)、List(列表)、Tuple(元组)、Dictionary(字典)标准数据类型外,还存在一种set(集合)类型,可用于存储值。其有两个重要特点:1. 无序,2. 不重复。

1

无序


此处的无序指的是元素的定义顺序与输出顺序不一致,如下图所示:

python set 不打乱顺序 python set可以排序吗_python set 不打乱顺序_02


Ps1:若想将无序的集合转化成有序的,可使用Python内置函数sorted(),如下图:

python set 不打乱顺序 python set可以排序吗_python set 不打乱顺序_03


Ps2:若想按照降序输出集合a1中的值,如下图:

python set 不打乱顺序 python set可以排序吗_mysq集合差操作_04

2

不重复


此处的不重复指的是集合中的同一个元素只有一次输出,如下图所示:

python set 不打乱顺序 python set可以排序吗_程序错误_05

本篇文章将围绕以下几点进行讨论:

1. 集合的创建

2. 从集合中添加值或者删除值

3. 集合运算方法

4. set(可变集合)与frozenset(不可变集合)

1 集合的创建 集合的创建有两种方法:使用 花括号{ }

创建、使用 Python的内建函数set()

来创建。 两种方法的创建如下图所示:

python set 不打乱顺序 python set可以排序吗_mysq集合差操作_06

注意:

创建一个空集合必须用 set() 而不能使用{ },因为 { } 表示创建一个空字典。如下图:

python set 不打乱顺序 python set可以排序吗_程序错误_07


2 从集合中添加值或者删除值 Python中提供了可用于操作集合的内置函数。 1. Add()函数 该方法表示往集合中添加一个新的元素内容。 如下图:

python set 不打乱顺序 python set可以排序吗_python set 不打乱顺序_08


2. Update()函数 将参数集合添加至调用集合中。 如下图:

python set 不打乱顺序 python set可以排序吗_mysq集合差操作_09


3. Remove()函数 从集合中移除指定元素。 如下图:

python set 不打乱顺序 python set可以排序吗_程序错误_10


4. Discard()函数 从集合中移除指定的元素。 如下图:

python set 不打乱顺序 python set可以排序吗_python set 不打乱顺序_11

注意:

discard()函数与remove()函数的作用基本相同,均是从集合中移除指定的元素,区别是当集合中不包含指定元素时,执行discard()函数,不会引发程序错误。

5. Pop()函数 从集合中删除并返回任意的元素。 如下图:

python set 不打乱顺序 python set可以排序吗_mysq集合差操作_12

注意:

当集合中不包含元素(空集合),执行pop()函数,则会引发程序错误。 6. Clear()函数 移除集合中所有的元素内容。 如下图:

python set 不打乱顺序 python set可以排序吗_程序错误_13


3 集合运算方法 1. 并集(Union) 两个集合中的所有元素合并在一起组成的集合,叫做集合A与集合B的并集。 如图:

python set 不打乱顺序 python set可以排序吗_并集_14

python set 不打乱顺序 python set可以排序吗_python set 不打乱顺序_15


2. 交集(Intersection) 两个集合中,属于A并且属于B的元素的集合称为A与B的交集。 如下图:

python set 不打乱顺序 python set可以排序吗_mysq集合差操作_16


3. 差集(Difference) 两个集合A和B中, 属于A且不属于B的元素的集合称为A与B的差集。 如下图所示:

python set 不打乱顺序 python set可以排序吗_并集_17


4. 对称差(Symmetric Difference) 两个集合A,B中,不重复的元素的集合称为A与B的对称差集。 如下图:

python set 不打乱顺序 python set可以排序吗_并集_18


4 set(可变集合)与frozenset(不可变集合) set是无序排序且不重复,是可变的,有add(),remove()等方法; 而frozenset是冻结的集合,它是不可变的,一旦创建便不能更改,没有add(),remove()方法。



作者:西安优盛机器学习算法工程师/刘国倩