Python中的集合类型及其操作

时间:2021-02-23 20:47:43

本文介绍python中的集合类型以及其相关操作。(使用python3.6.0)

集合是一个无序的(字典也是无序的),不重复的数据集合。其基本功能包括下面两种:

1. 去重:把一个还有重复元素的列表或元组等数据类型转变成集合,其中的重复元素只出现一次。使用set()方法。

2. 进行关系测试:测试两组数据之间的交集,差集,并集等数据关系。

首先是一个使用set()去重的例子:

Python中的集合类型及其操作

可见a,b分别为含有重复元素的列表和元组,使用set()方法后转变成不含重复元素的集合类型。

另外使用set()可以直接创建一个空集合,集合使用大括号。

也可以使用大括号直接创建集合,输入元素可以重复(自动去重):

Python中的集合类型及其操作

然后是进行关系测试的列子及相关函数:

首先可以通过help(set),查看集合的相关函数,下面是部分查询结果:

Python中的集合类型及其操作

那么我们介绍集合常用的关系测试函数:

# Author:Allen Liu
# Data: 07/23/2017
''''Some examples of the relationship testing '''
a = [1,2,2,'a','a','d','e']
b = [1,2,2,'a','a','b','b']
c = set(a)
d = set(b)
print(c,d)
# The result is {1, 2, 'a', 'd', 'e'} {'b', 1, 2, 'a'}
e = c.intersection(d) # "取交集" “equals the command: c & b”
f = c.union(d) #"并集" “equals the command: c \ d”
g = c.difference(d) #"差集" “equald the command c - d”
print(e,f,g)
# The result is {'a', 1, 2} {1, 2, 'a', 'b', 'd', 'e'} {'d', 'e'}
h = c.symmetric_difference(d) #"对称差集" “equals to c ^ d”
i = c.issubset(d) # "判读是否为子集"
j = c.issuperset(d) # "判读是否为超集"
k = c.isdisjoint(d)#检查是否有相同元素,没有返回True
print(h,i,j,k)
# The result is {'d', 'e', 'b'} False False False
m = len(c)
n = 'a' in c #判断元素l是否在c中
c.remove('a')#去除指定元素
print(m,n,c)
#The result is 5 True {1, 2, 'd', 'e'}