python基础3
1、集合
—不同元素组成
—无序
—集合中元素必须是不可变类型(字符串、数字、元祖)(列表可变,不行)
## 集合 定义 s = {1,2,8,8,8,'dfs',(4,'sddf')} print(s) ##{8, 1, 2, 'dfs'} s = set('hello') print(s) ###{'o', 'h', 'l', 'e'} s = set(['ss','ss',4,4,'ggg']) print(s) ###{'ggg', 'ss', 4}
### 增加元素 s = {1,2,3,4,'kk'} s.add('增加') print(s) ### 请空 s.clear() ### 复制 s1 = s.copy() ### 删除 s.pop() ### 随机删除 s.remove('增加') ### 删除指定元素,若删除元素不存在,会报错 s.discard('kk') ### 删除指定元素,若删除元素不存在,不会报错
— 集合的交、并、差
a = ['a','b','c','d','a'] b = ['c','d','e','f','c'] a_s = set(a) b_s = set(b) print(a_s,b_s) ## {'d', 'c', 'b', 'a'} {'d', 'c', 'e', 'f'} ## 求交集 {'d', 'c'} print(a_s.intersection(b_s)) print(a_s&b_s) ## 求并集 {'d', 'b', 'f', 'a', 'e', 'c'} print(a_s.union(b_s)) print(a_s|b_s) ## 求差集 print(a_s-b_s) ## {'b', 'a'} print(a_s.difference(b_s)) ## {'b', 'a'}
### 交叉补集 先并集,再减交集 print(a_s.symmetric_difference(b_s)) ## {'e', 'f', 'a', 'b'} print(a_s^b_s)
# 把a-b的结果赋值给a a_s.difference_update(b_s) print(a_s) ### {'a', 'b'} a_s = a_s - b_s print(a_s) ### {'a', 'b'}
### 是否有交集,是—False,否—True print(a_s.isdisjoint(b_s))
a = ['a','b'] b = ['a','b','c'] a_s = set(a) b_s = set(b) ### 判断 a 是否为 b 的子集 (布尔值) print(a_s.issubset(b_s)) ##True ### 判断 b 是否为 a 的父集 (布尔值) print(a_s.issuperset(b_s)) ##True
### 更新多值 add()只能更新一个值 union()不更新 a_s.update(b_s) print(a_s) ### {'b', 'a', 'c'}
— { }、set()定义的集合可变(可增删)
— frozenset()定义的集合不可变
s = frozenset('kkljh') print(s) ##frozenset({'j', 'h', 'k', 'l'})
### 列表去重(不考虑列表中元素对的顺序) li = ['a','a',2,3,2] li = list(set(li)) print(li) ### [2, 3, 'a']