Python基础-集合
1.定义及特点
-
集合(set)是一个无序的不重复元素序列。用{}单元素或者set()创建,用来完成去重(将列表---->集合,自动去重),关系测试等功能
-
特点:
- 无序
- 不可重复
- 不可更改
- 内部元素可哈希,本身不可哈希
2.集合的基础操作
2.1集合的创建
- 空集合创建
st=set()
print(type(st))
'<class 'set'>'
- 多元素集合:注意其元素为不可变元素,
st=(1,2,3,'a',{'a':'x'})
print(type(st))
'<class 'tuple'>'
- 强制转换
li=[123,'qwer','lol']
st=set(li)
st,print(type(st))# tips 用,链接返回一个元组
sr='hello'
st1=set(sr)
print(st1)
st2=set(sr)
print(st2)
dic={'a':1,'b':'x',}
st=set(dic)
print(st)
'''
<class 'tuple'>
{'h', 'e', 'l', 'o'} #两个l值有一个在集合中显示,去重功能
{'h', 'e', 'l', 'o'}
{'a', 'b'}
'''
2.2增加元素
-
set.add()
se={'a','w','c',1} se.add('s') print(se) '{'w', 1, 's', 'c', 'a'}' # 每次运行结果不同,因为无序
-
set.update()
2.3删除元素
-
set.pop()
删除排序最小的一个元素
se={'a','w','c',1} se.pop() print(se) '{'a', 'w', 1}'
-
set.discard()
移出元素,不存在,不会报错
se={'a','w','c',1} se.discard('a') print(se) se.discard('a') print(se) '{'c', 'w', 1}'
-
set.remove()
移除元素,不存在会报错
se={'a','w','c',1} se.remove('a') print(se) se.remove('a') print(se) ''' se.remove('a') KeyError: 'a''''
-
del set
删除集合
-
set.clear()
删除集合内的所有元素
se={'a','w','c',1} se.clear() print(se) '{}'
2.4改变元素(无法实现)
2.5查询元素(无法实现)
2.6遍历
- 元素遍历
se = {'a', 'w', 'c', 1}
for i in se:
print(i,end=' ')
'c w 1 a '
- 枚举遍历
se = {'a', 'w', 'c', 1}
for i in enumerate(se):
print(i)
'''
(0, 'c')
(1, 1)
(2, 'a')
(3, 'w')
'''
2.7集合的基本运算
- 包含
a=set('abcde')
b=set('abc')
c=set('a')
print(a,b,c)
print(c<a)
print(b<c)
'''
{'e', 'b', 'c', 'a', 'd'} {'a', 'b', 'c'} {'a'}
True
False
'''
-
交集
- &
- set.intersection()
a=set('abcde') b=set('abc') c=set('a') print(a&b) print(a.intersection(c)) ''' {'a', 'b', 'c'} {'a'} '''
-
并集
- |
- set.union()
a=set('abcde') b=set('abe') c=set('e') print(a|b) print(a.union(c)) ''' {'a', 'b', 'c', 'd', 'e'} {'a', 'b', 'c', 'd', 'e'} '''
-
差集
- -
- set.difference()
a=set('abcde') b=set('abe') c=set('e') print(a-b) print(a.difference(c)) ''' {'c', 'd'} {'b', 'c', 'a', 'd'} '''