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']

  

 

posted @ 2019-01-13 18:16  kuluma  阅读(187)  评论(0编辑  收藏  举报