Python_集合

集合(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'}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值