Python—集合set的基础知识

集合

  • 无序
  • 不可重复
  • 不可更改
    • 内部的元素是不可更改的
    • 集合本身是可更改的
  • 用{}括起来的单元素数据集

用途

  • 去重(列表—>集合,自动去重)
  • 关系测试

集合的创建

空集合的创建

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'}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值