一、基本数据类型
Python 中一共有6种基本数据类型,他们是:
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
在这6个基本数据类型中,不可变数据 有3个:
- Number(数字)
- String(字符串)
- Tuple(元组)
可变数据 有3个:
- List(列表)
- Set(集合)
- Dictionary(字典)
各个数据可以使用特定的语句来进行转换,如int()、str()、float()、set()等。
本期内容我们详细介绍Set(集合)
这一类型。
二、Set(集合)
集合,英文为set
,无简写。
集合(set)
是由一个或数个元素组成的。
集合的常用功能是进行删除重复元素。
集合可以使用大括号 { }
或者 set()
函数创建集合。
注意:创建一个空集合必须用
set()
而不是{ }
,因为{ }
是用来创建一个空字典。
创建格式如下:
set_name = {element1,element2,element3}
或
set_name = set()
(1)利用集合去重
集合最大的特性就是不能存储重复的数据,这个特性也被广泛用于列表去重复项的例子里。
下面是一个实例:
list1 = [1, 2, 3, 4, 2]
set1 = set(list1)
list1 = list(set1)
print(list1)
以上运行结果:
[1, 2, 3, 4]
代码解析:
第一行,创建列表list1,包含重复项2
;
第二行,创建变量set1,并将set(list1)
赋值给set1,set(list1)
的作用是将列表list1转化成集合;
第三行,改变列表list1的值为list(set1)
,即将set1
转化成列表类型;
第四行,输出list1
。
会发现,输出的结果中没有原有的两个2
,只有一个,我们是运用了列表、集合相互转化来达到“去重”的效果的。
这就是集合的不可重复性。
(2)添加元素
在集合中添加元素,可以用add()
指令来完成。
示例如下:
a = {1, 2, 3, 4}
a.add(5)
print(a)
以上代码运行结果:
{1, 2, 3, 4, 5}
结果就是在原来的集合中添加了元素5
。
(3)删除元素
在集合中删除某一个元素,用remove()
指令。
a = {1, 2, 3, 4, 5}
a.remove(5)
print(a)
以上运行结果:
{1, 2, 3, 4}
通过remove()
函数去除了集合a中5
这个元素,所以输出的内容只有1,2,3,4
,没有5
。
(4)交集运算
Python中的集合就像数学中的集合一样,可以进行交集的运算。
- 进行交集运算时使用
&
符号
交集示意图:
从图片上可以直观地看出,交集的意思就是集合A与集合B共有的部分,即重复的部分。
如:集合A为{1, 2 ,3}
,集合B为{3, 4, 5}
,{3}
这个集合就是集合A与集合B共有的部分,称为集合A与集合B的交集。
我们可以这么说:集合{1, 2, 3}
与集合{3, 4, 5}
的交集是{3}
。
下面是一个 Python 的交集计算代码。
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1 & set2)
{3}
输出了set1与set2的交集。
(5)并集运算
Python中的集合就像数学中的集合一样,可以进行并集的运算。
- 进行并集运算时使用
|
符号
并集:
并集就是两个集合所有的元素加起来。
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1 | set2)
程序输出:
{1, 2, 3, 4, 5}
(6)差集运算
Python中的集合就像数学中的集合一样,可以进行差集的运算。
- 进行差集运算时使用
-
符号
差集:
差集就是在一个集合内去除所有另一个集合所包含的元素。
如上图的“B-A”,就是在集合B中去除与集合A重复的元素。
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1 - set2)
程序输出:
{1, 2}
(7)输出两个集合不同时存在的元素
输出两个集合不同时存在的元素,em,作者不知道这个东西的名字叫啥,有知道的朋友可以打在评论区。
两个集合不同时存在的元素,比如说:集合A为{1, 2, 3}
,集合B为{3, 4, 5}
,那么它们不同时存在的元素就是{1, 2, 4, 5}
。
简单说,集合A与集合B不同时存在的元素就是 集合A-集合B
再加上集合B-集合A
,即两个差集之和。
Python 指令可以使用操作符^
。
如下所示:
set1 = {1, 2, 3}
set2 = {2, 3, 4}
print(set1 ^ set2)
程序输出:
{1, 4}