Python集合

集合

  • 无序
  • 不可重复
  • 不可更改
    • 内部的元素是可哈希的
    • 集合本身是不可哈希的
  • 用{}括起来的单元素数据集
  • 用途:
    • 去重(列表 ---->集合,自动去重)
    • 关系测试

1.集合的创建

  • 空集合的创建
st = set{}
print(st,type(st))
# set{} <class 'set'>
  • 多元素的集合创建
st = {1,2,3,'as','b'}
print(st)
# {1, 2, 3, 'b', 'as'}
  • 强转
st = [1,2,3,'as','b']# 无序
print(type(set(st)))
print(set(st))
#<class 'set'>
#{1, 2, 3, 'b', 'as'} # 有序
# 若是字典被强制转换,会留下键值(key)

2.集合的操作

(1)增

  • set.add()

    st = {1,2,'a','b'}
    st.add('5')
    print(st)
    # {1, 2, 'b', 'a', '5'}
    
  • set.update()

    st = {1,2,'a','b'}
    st.update('5')
    print(st)
    # {1, 2, 'b', '5', 'a'}
    

(2)删

  • set.pop() 随机删除集合中的一个元素

    st = {1,2,'a','b'}
    st.pop()
    print(st)
    # {2, 'b', 'a'}
    
  • set.discard()

st = {1,2,'a','b'}
st.discard(2)
print(st)
# {1, 'b', 'a'}
  • set.remove()
st = {1,2,'a','b'}
st.remove(1)
print(st)
# {2, 'a', 'b'}
  • del set
st = {1,2,'a','b'}
del st
print(st)
# NameError: name 'st' is not defined

(3)改

  • 不可改的

(4)查

  • 不可查的

(5)遍历

st = {1,2,'a','b'}
for i in st:
    print(i,end= ' ')
print()
#1 2 b a 
print(st)
#{1, 2, 'b', 'a'}

#枚举
st = {1,2,'a','b'}
for i in enumerate(st):
    print(i,end= ' ')
print()
#(0, 'b') (1, 1) (2, 2) (3, 'a') 
print(st)
# {'b', 1, 2, 'a'}

3.集合的基本运算

(1)子集

a = set('abcd')
b = set('cdef')
c = set('ab')
print(c<a)
# True
# True

(2)交集

  • &
  • set.intersection()
a = set('abcd')
b = set('cdef')
c = set('ab')
print(a & c)
# {'b', 'a'}
print(a.intersection(b))
#{'c', 'd'}

(3)并集

  • |
  • set.union()
a = set('abcd')
b = set('cdef')
c = set('ab')
print(a | c)
# {'b', 'd', 'a', 'c'}
print(a.union(b))
# {'e', 'd', 'a', 'b', 'c', 'f'}

(4)差集

  • -
  • set.difference()
a = set('abcd')
b = set('cdef')
c = set('ab')
print(a - c)
# {'c', 'd'}
print(a.difference(b))
# {'a', 'b'}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值