集合(set())
-
无序
-
不可重复
-
不可更改
-
内部的元素是可哈希的
-
集合本身是不可哈希的
-
-
用{}括起来的单元素数据集
用途:
- 去重(列表—>集合,自动去重)
- 关系测试
集合的创建
空集合的创建
st = set()
print(st)
print(type(st))
set()
<class 'set'>
多元素的集合创建
>>> st = {1,2,3,'a','b'}
>>> type(st)
<class 'set'>
>>> st = {1,2,3,4,['1','2']}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
强转
li = ['city','college']
st = set(li)
print(type(st),st)
<class 'set'> {'college', 'city'}
sr = 'hello'
print(set(sr))
{'h', 'e', 'l', 'o'}
dic = {'id':31502286,'name':'Tom','age':20}
st = set(dic)
print(st)
{'id', 'name', 'age'} #字典被强转时 只转 键
集合的基本操作
增
- set.add()
- set.update()
删
- set.pop() 删除排序最小的一个元素
- set.discard() 移除元素,不存在不会报错
- set.remove() 移除元素, 不存在 报错
- del set
- set.clear()
st = {1,2,3,'a','g','s'}
print(st.pop()) # 1
st = {1,2,3,'a','g','s'}
st.discard(1)
print(st) #{2, 3, 's', 'a', 'g'}
st = {1,2,3,'a','g','s'}
st.remove(1)
print(st) #{2, 3, 'a', 's', 'g'}
不可改
不可查
遍历
st = {1,2,3,'a','g','s'}
for i in st:
print(i,end=' ')
# 1 2 3 a s g
st = {1,2,3,'a','g','s'}
for i in enumerate(st):
print(i,end=' ')
(0, 1) (1, 2) (2, 3) (3, 'g') (4, 'a') (5, 's')
集合的基本运算
子集
a = set("abcd")
b = set("cdef")
c = set("ab")
print(a>c)
print(a>b)
True
False
交集
- &
- set.intersection()
a = set("abcd")
b = set("cdef")
c = set("ab")
print(a&b)
print(a&c)
{'d', 'c'}
{'a', 'b'}
并集
- |
- set.union()
a = set("abcd")
b = set("cdef")
print(a|b) / print(set.union(a,b))
{'c', 'a', 'f', 'b', 'd', 'e'}
差集
-
- set.difference()
a = set("abcd")
b = set("cdef")
print(a-b) /print(set.difference(a,b))
{'b', 'a'}
810

被折叠的 条评论
为什么被折叠?



