初学Python——集合及其运算
一、集合定义及其功能 集合是一个无序的、不重复的数据组合,和字典列表一样也是一种数据类型。 集合两个最主要的功能:①去重(把一个列表变成集合,就自动去重了) ②关系测试(测试两组数据之间的交、并、差集等关系) 二、关系测试 首先,如何创建集合? 两种方式:(1)直接创建 a=set([1,8,2,3,5,4,5,3]) (2)将列表转化成集合 list1=[5,9,7,3,6,6,7,95,78,65,102] #创建列表 list1=set(list1) #将列表转化成集合 在这里需要说明,集合是无序的,尽管将集合a输出:print(a),得到的结果是 看上去好像自动做了排序,其实不然,只是集合的数据太少了,输出list1就不是这样了: 1.取两个集合的交集: 两种写法:①intersection()方法 print(list1.intersection(a)) print(a.intersection(list1)) 这两种写法没有任何区别,输出结果都是 ②数学表示 print(list_1 & a) 2.取并集: 也是两种方法:①union()方法 print("union:",a.union(list_1)) ②数学表示 print("union:",a|list_1) 输出结果: 3.取差集: 亦是两种方法:①difference()方法 print("difference:",list_1.difference(a)) #差集(list_1减去交集) print("difference:",a.difference(list_1)) #差集(a减去交集) ②数学表示 print("list_1 - a :",list_1-a) print("a - list_1 :",a-list_1) 运行结果: 4.判断是否是父集和子集的关系: issubset()方法和issuperset()方法 print("issubset:",list_1.issubset(a)) #判断list_1是不是a的子集 print("issuperset:",a.issuperset(list_1)) #判断a是不是List_1的父集 当然,肯定都不是,再创建一个集合试一试 list_2=set([1,3,5]) print(list_2.issubset(a)) #判断list_2是不是a的子集,是则返回True print(a.issuperset(list_2)) #判断a是不是list_2的父集,不是返回False 运行结果: 5.对称差集: 对称差集是指两个集合的并集减去交集 ①symmetric_difference()方法 print("symmetric_difference:",a.symmetric_difference(list_1)) ②数学表示 print("a^list_1:",a^list_1) 运行结果: 6.判断是不是相交 list_3=set([50,30,60]) print("isdisjoint:",a.isdisjoint(list_3)) #判断两个集合之间的关系是不是相交,如果相交返回False print("isdisjoint:",a.isdisjoint(list_2)) 运行结果: 三、集合的操作 1.添加数据 添加一项: a.add("abc") #添加一项 添加多项: a.update([20,30,90]) 2.删除数据 ①remove()方法 a.remove("abc") #删除字符“abc” ②pop()方法 print(a.pop()) #随机删除,并返回删除的值 ③discard()方法 a.discard(30) #删除数据 3.获取集合的长度 print(len(a)) #集合 a 的长度 4.判断数据是否是集合的成员 print(30 in a) #判断30是否是集合a的成员(列表、字典、集合、字符串都可以用这种方法来判断) print(30 not in a) #判断30是否不是集合a的成员