( 源自:https://www.cnblogs.com/zhaoyang1997/p/10392822.html )
1. 什么是集合
1.集合是一个可变容器
2.集合内的数据对象都是唯一的(不能重复)
3.集合是无序的存储结构, 集合内的数据没有先后关系
4.集合是可迭代对象
5.集合相当于‘只有键没有值的字典’(键就是集合中的数据)
6.集合内的任意一个元素是不能修改其值的,但是可以删除它
2. 创建集合
1. 创建集合
s = {1,2,3}
s ={"hello",3.14,True,(2019,02,17)}
2. 使用构造函数创建集合 set
s = set() #创建空集合
s =set(iterable) # 使用可迭代对象创建一个集合
s =set("ABC") # s ={'A','B','C'}
s =set([1,0,3.14,"hello"]) # s = {1,0,3.14,'hello'}
3. 集合的运算
交集,并集,补集,子集,超集
1. 交集 &
s1 = {1,2,3}
s2 = {2,3,4}
s3 = s1 & s2 # s3 = {2,3}
2. 并集 |
s1 = {1,2,3}
s2 = {2,3,4}
s3 = s1 | s2 # s3 = {1,2,3,4}
3. 补集 -
s1 = {1,2,3}
s2 = {2,3,4}
s3 = s1 - s2 # {1} 生成属于s1 但 不属于s2的所有的元素
4. 对称补集 ^
s1 = {1,2,3}
s2 = {2,3,4}
s3 = s1 ^ s2 # { 1 , 4 } 相当于 (s1 - s2) | (s2 - s1)
5. 超集 >
6. 子集 <
s1 = {1,2,3}
s2 = {2,3}
s1 > s2 # True s1 是 s2 的超集
s1 < s2 # False s1 不是 s2 的子集
7. 集合的相等 ==
8. 集合的不等 !=
s1 = {1,2,3}
s2 = {3,2,1}
s1 ==s2 # True, 集合相等
9. 成员运算 in , not in
4. 用于集合的内建函数
len(set) : 集合内元素的个数
max(set) : 最大值
min(set) : 最小值
sum(set) : 和
any(set) : 任何一个元素为真,则返回真
all(set) : 所有元素为真,则返回真
5. 用于集合的方法
1.add()
2.clear()
3.copy()
4.difference() # 返回新补集
5.difference_update() # 修改为补集
6.remove()
7.discard()
8.pop()
9.intersection() # 返回交集
10.intersection_update() # 修改成交集
11.isdisjoint()
12.issubset()
13.issuperset()
14.symmetric_difference() # 返回对称补集
15.symmetric_difference_update() # 修改成对称补集
16.union()
17.update()
6. 集合推导式
语法:
{ 表达式 for 变量 in 可迭代对象 if 条件 }
L =[ 1,2,3,4,5,6,7,8,9 ]
s = { x for x in L }
s = { x for x in L if x % 2 == 0 }
7. 固定集合 - frozenset
1. 特点
1. 不可变的容器 - 允许作为字典的键
2. 无序的
3. 元素唯一
2. 创建固定集合 - 使用构造函数(frozenset)
1. frozenset() : 创建一个空的固定集合
2. frozenset(iterable) : 使用可迭代对象创建固定集合
示例:
f = frozenset() # 空固定集合
f =frozenset([1,2,3,4]) # f =frozenset({1,2,3,4})
3. 固定集合的运算
交集(&), 并集(|), 补集(-), 对称补集(^)
< , > , >= , <= , == , !=
in / not in
4. 固定集合的方法
相当于集合的全部方法去掉能够修改集合的方法

