集合
- 无序
- 不可重复
- 不可更改
- 内部的元素是可哈希的
- 集合本身是不可哈希的
用途:
- 去重(列表—>集合,自动去重)
- 关系测试
集合的创建
空集合的创建
st = set()
s
多元素集合的创建
强转
li = ['city', 'college', 'zhejiang']
st = set(li)
sr = 'city'
st = set(sr)
sr = 'Hello'
st = set(sr)
dic = {'id': 2019, 'name': Joe, 'age': 18}
st = set(dic)
集合的基本操作
增
- set.add()
- set.update()
删
- set.pop() 删除排序最小的一个元素
- set.discard 删除元素,不存在,不会报错
- set.remove 删除元素,不存在报错
- del set
改
不可改
查
不可查
遍历
st = {'city', 'college', }
for i in enumerate(st):
print(i)
# (0, 'city')
# (1, 'college')
集合的基本运算
子集
a = set('abcd')
b = set('cdef')
c = set('ab')
print(c.issubset(a)) # True
print(c < a) # True
交集
- &
- set.intersection()
a = set('abcd')
b = set('cdef')
c = set('ab')
print(a.intersection(b)) # {'c', 'd'}
print(c & a) # {'b', 'a'}
并集
- |
- set.union()
a = set('abcd')
b = set('cdef')
c = set('ab')
print(c.union(b)) # {'c', 'd', 'a', 'b', 'f', 'e'}
print(c | a) # {'d', 'a', 'b', 'c'}
差集
-
- set.difference ()
a = set('abcd')
b = set('cdef')
c = set('ab')
print(a.difference(c)) # {'c', 'd'}
print(a - c) # {'c', 'd'}