一、集合
无序,不可重复,不可更改(内部的元素是可哈希的,集合本身是不可哈希的),用花括号括起来的单元素数据集
-
用途
去重、关系测试
1.1 集合的创建
- 空集合
st = set()
- 多元素
st = {1,2,3,4,"a","b"}
- 强制转化
li = ["city","college","zhejiang"]
st = set(li)
print(st,type(st)) #{'zhejiang', 'college', 'city'} <class 'set'>
1.2 集合的基本操作
1.2.1 增
- set.add( )
- set.update( )
1.2.2 删
- set.pop( ):删除排序最小的一个元素
- set.discard( ):移除元素,无返回值,不存在,不会报错
- set.remove( ):移除元素,无返回值,不存在,报错
- del set
st = {"a","b","c","d",1,2,3}
print(st.pop()) #a
print(st) #{1, 2, 3, 'b', 'c', 'd'}
st.discard("a")
print(st) #{1, 2, 3, 'b', 'c', 'd'}
st.remove("b")
print(st) #{1, 2, 3, 'c', 'd'}
1.2.3 其他
不可改、不可查
遍历
st = {"a","b","c","d",1,2,3}
for i in st:
print(i,end=" ")
#1 2 3 d c a b
for i in enumerate(st):
print(i,end=" ")
#(0, 1) (1, 2) (2, 3) (3, 'd') (4, 'c') (5, 'a') (6, 'b')
1.3 集合的基本运算
子集
<、>、set.issubset( )
a = set("abcd")
b = set("cdef")
c = set("ab")
print(a,b,c) #{'a', 'c', 'b', 'd'} {'e', 'f', 'c', 'd'} {'a', 'b'}
print(c < a) #True
print(c.issubset(a)) #True
交集
&、set.intersection( )
a = set("abcd")
b = set("cdef")
print(a&b) #{'d', 'c'}
print(a.intersection(b)) #{'d', 'c'}
并集
| 、set.union( )
a = set("abcd")
b = set("cdef")
print(a|b) #{'b', 'a', 'e', 'c', 'f', 'd'}
print(a.union(b)) #{'b', 'a', 'e', 'c', 'f', 'd'}
差集
-、set.difference( )
a = set("abcd")
b = set("cdef")
print(a-b) #{'a', 'b'}
print(a.difference(b)) #{'a', 'b'}