python基础3,,1、集合—不同元素组


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的结果赋值给aa_s.difference_update(b_s)print(a_s)  ###  {‘a‘, ‘b‘}a_s = a_s - b_sprint(a_s) ###  {‘a‘, ‘b‘}

### 是否有交集,是—False,否—Trueprint(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‘]

  

python基础3

评论关闭