集合(set())
-
无序
-
不可重复
-
不可更改
- 内部元素是可哈希的
- 集合本身是不可哈希的
-
用{}括起来的单元素数据集
用途:
- 去重(列表—>集合,自动去重)
- 关系测试
集合的创建
(1)空集合的创建
st = set()
print(st)
st()
(2)多元素的集合创建
st = set()
st = {1,2,3,"a","b","c"}
print(st)
{1, 2, 3, 'c', 'a', 'b'}
(3)强转
li = ["city","college","zhengjiang"]
st = set(li)
print(st,type(st))
{'city', 'zhengjiang', 'college'} <class 'set'>
dic = {"id":31902103,"name":"chh","age":18}
st = set(dic)
print(st)
{'id', 'name', 'age'} #字典强转时只要键而忽略值的存在
集合的操作
(1)增
- set.add()
- set.update()
(2)删
-
set.pop() #删除排序最小的一个元素
st = {"a","ab","b","c",1} print(st.pop())
-
set.remove() #删除元素,不存在会报错
st = {"a","ab","b","c",1} st.remove("a") print(st) {1, 'c', 'ab', 'b'}
-
set.discard()#删除元素不存在不会报错
st = {"a","ab","b","c",1} st.discard("d") print(st) {'a', 1, 'ab', 'b', 'c'}
-
del set
-
set.clear()
st = {"a","ab","b","c",1} st.clear() print(st) set()
(3)改
不可改的
(4)查
不可查的
(5)遍历
st = {"a","ab","b","c",1}
for i in st:
print(i,end=" ")
1 a c b ab
st = {"a","ab","b","c",1}
for i in enumerate(st):
print(i,end=" ")
(0, 1) (1, 'ab') (2, 'c') (3, 'a') (4, 'b')
集合的基本运算
(1)子集
- <
- set.issubset()
a = set("abcd")
b = set("cdef")
c = set("ab")
print(c.issubset(a))
print(c < a)
True
True
(2)交集
- &
- set.intersection()
a = set("abcd")
b = set("cdef")
c = set("ab")
print(a.intersection(b))
print(c & a)
{'c', 'd'}
{'a', 'b'}
(3)并集
- |
- set.union()
a = set("abcd")
b = set("cdef")
c = set("ab")
print(a.union(b))
print(c | a)
{'f', 'e', 'c', 'a', 'd', 'b'}
{'c', 'a', 'd', 'b'}
(4)差集
-
- set.difference()
a = set("abcd")
b = set("cdef")
c = set("ab")
print(a.difference(b))
print(a - c)
{'a', 'b'}
{'c', 'd'}