集合
- 无序
- 不可重复
- 不可更改
- 内部的元素是不可更改的
- 集合本身是可更改的
- 用{}括起来的单元素数据集
用途
- 去重(列表—>集合,自动去重)
- 关系测试
集合的创建
空集合的创建
st=set()
st={}
多元素的集合创建
st={1,2,3,'a','b','c'}
print(type(st))
<class 'set'>
st={1,2,3,'a','b','c',['a','v']}
print(type(st))
Traceback (most recent call last):
File "D:/PycharmProjects/1/day.py", line 278, in <module>
st={1,2,3,'a','b','c',['a','v']}
TypeError: unhashable type: 'list'
强转
li=['ss','saa','bb']
st=set(li)
print(st,type(st))
{'saa', 'ss', 'bb'} <class 'set'>
sr='aaaasdff'
st=set(sr)
print(st,type(st))
{'a', 'f', 'd', 's'} <class 'set'>
dic={"id":2000,'name':'Tom','age':18,'a':1}
st=set(dic)
print(st,type(st))
{'id', 'name', 'age', 'a'} <class 'set'>
集合的基本操作
增
- set.add() 在前端添加元素
- set.update() 在后端添加元素
st={'a','ab'}
st.add('c')
# st.update('c')
print(st)
{'c', 'ab', 'a'}
{'ab', 'a', 'c'}
删
- set.pop() 删除排序最小的一个元素
- set.discard() 移除元素,不存在,不会报错
- set.remove() 移除元素,不存在,报错
- del set
st={'a','ab'}
st.pop()
# st.discard('a')
print(st)
{'ab'}
改
不可改
查
不可查
遍历
st={'a','ab'}
for i in st:
print(i,end=' ')
for i in enumerate(st):
print(i,end=' ')
a ab
(0, 'a') (1, 'ab')
集合的基本运算
子集
a=set('abcd')
b=set('cdef')
c=set('ab')
print(c.issubset(a))
print(a>c)
print(c>b)
True
True
False
交集
- &
- set.intersection()
a=set('abcd')
b=set('cdef')
print(a & b)
print(a.intersection(b))
{'c', 'd'}
{'c', 'd'}
并集
- |
- set.union()
a=set('abcd')
b=set('cdef')
print(a | b)
print(a.union(b))
{'f', 'a', 'b', 'd', 'e', 'c'}
{'f', 'a', 'b', 'd', 'e', 'c'}
差集
-
- set.diffence()
a=set('abcd')
b=set('cdef')
print(a - b)
print(a.difference(b))
{'a', 'b'}
{'a', 'b'}