一、集合操作(set)
1、定义:
set集合,是一个无序且不重复的元素集合。
集合对象是一组无序排列的可哈希的值,集合成员可以做字典中的键。集合支持用in和not in操作符检查成员,由len()内建函数得到集合的基数(大小), 用 for 循环迭代集合 的成员。但是因为集合本身是无序的,不可以为集合创建索引或执行切片(slice)操作,也没有键(keys)可用来获取集合中元素的值。
2、特性:
1、无序
2、去重
3、关系测试
3、常用操作:
交集(&)(intersection):两者都存在的
1 >>>a = [1,2,3,4,5]
2 >>>b = [4,5,6,7,8]
3 >>>a_set = set(a)
4 >>>b_set = set(b)
5 >>>rint(a_set.intersection(b_set))
6 >>>print(a_set.intersection(b_set),type(a_set.intersection(b_set)))
7 >>>{4, 5} <class 'set'>#可以看出字典和集合都是{},先将a和b都转成集合,然后求出交集(它们两都有的)
并集(|)(union):去重后所有元素放一起
1 >>>a = [1,2,3,4,5]
2 >>>b = [4,5,6,7,8]
3 >>>a_set = set(a)
4 >>>b_set = set(b)
5 >>>print(a_set.union(b_set))
差集(-)(difference):语法使用规则是你有我没有
1 >>>a = [1,2,3,4,5]
2 >>>b = [4,5,6,7,8]
3 >>>a_set = set(a)
4 >>>b_set = set(b)
5 >>>print(a_set.difference(b_set))#(前后存在顺序问题,a里面有的b里面没有的(有---没有))
6 >>>print(b_set.difference(a_set))#b里面有的a里面没有
子集(issubset):a是不是b的子集和b是不是a的子集
1 >>>a = [1,2,3,4,5]
2 >>>b = [4,5,6,7,8]
3 >>>a_set = set(a)
4 >>>b_set = set(b)
5 >>>print(a_set.issubset(b_set))
6 >>>print(b_set.issubset(a_set))
7 >>>False
8 >>>False
父集(issuperset):a是不是b的父集和b是不是a的子集
1 >>>a = [1,2,3,4,5]
2 >>>b = [4,5,6,7,8]
3 >>>a_set = set(a)
4 >>>b_set = set(b)
5 >>>print(a_set.issuperset(b_set))
6 >>>print(b_set.issuperset(a_set))
7 >>>False
8 >>>False
对称差集(^)(symmetric_difference):a和b都互相都没有(去重后放到一起)
1 >>>a = [1,2,3,4,5]
2 >>>b = [4,5,6,7,8]
3 >>>a_set = set(a)
4 >>>b_set = set(b)
5 >>>print(a_set.symmetric_difference(b_set))
6 >>>{1, 2, 3, 6, 7, 8}
a = [1,2,3,4,5]
b = [4,5,6,7,8]
a_set = set(a)
b_set = set(b)
print(a_set.isdisjoint(b_set))#前后两者存在交集就返回False,没有交集就打印True
解释:
isdisjoint是判断a和b是否存在交集,如果存在返回False,不存在交集返回Trun
4、基本操作
.add(增加)添加一项
1 >>>a = [1,2,3,4,5]
2 >>>a_set = set(a)
3 >>>print(a_set)
4 >>>a_set.add(55)#一次只能添加一个元素,否则会报错
5 >>